Hi Stefan,
I have finally managed t get some tie to devote to my lack of understanding of 
merge conflicts.

I have read the post you mentioned in your reply;
> http://svn.haxx.se/users/archive-2011-04/0209.shtml

And I have also gone back and re-read the svn-book, too.
I can't say that it has helped me out any, really.
I don't have any idea as to what the technical explanation is about merging.
But I can certainly accept the advice to perform all merges at the root and to 
use the following syntax;
svn merge ^/trunk

I have to say - that since taking on this process, I have not  encountered the 
issue again - it has worked quite well for us.

But I find that I have managed to create a tree conflict again and need some 
help in resolving it.

There is a directory at;
/trunk/nz/shared that we are making redundant.

we have copied it to;
/trunk/shared

But unfortunately it needs to remain at /trunk/nz/shared in the short-term.

When constructing the branch, I deleted the /branches/myFeature/shared/ 
directory
and set up an external mapping with;
shared http://192.168.10.95/svn/repo/trunk/shared/

In the physical "real" /trunk/nz/shared/myFile - and edit was made.
The edit was replicated at /trunk/shared/myFile too.

and so now I get this when I try to do a merge....
I understand why I have a conflict....
I have an external that is a duplicate of a "real" location and there was an 
edit at the external path too.

so now I get;

--- Merging r21837 through r21844 into '.':
   C shared
U    patient/eDiagnostics.cfm
U    patient/meetdate.cfm
U    patient/qry_unreadDiagnosticsSELECT.cfm
U    patient/dsp_unreadDiagnosticsReviewList.cfm
Summary of conflicts:
  Tree conflicts: 1


While I am happy why I have the conflict;
How do I resolve it?

As always  - a big thanks for all your help.


Gavin.


On 20/04/2011, at 8:49 PM, Stefan Sperling wrote:

> On Wed, Apr 20, 2011 at 03:43:06PM +1000, Gavin "Beau" Baumanis wrote:
>> Hi Everyone,
>> 
>> I am having some issues understanding tree conflicts.
>> 
>> I attempted the following;
>> svn merge -r1:head trunk/com/palcare/listsServices/ 
>> branches/production/com/palcare/listsServices/ --accept="theirs-full"
>> 
>> and got this;
>> Skipped 'branches/production/com/palcare/listsServices/ListsService.cfc'
>> --- Merging r15942 through r20669 into 
>> 'branches/production/com/palcare/listsServices':
>>   C branches/production/com/palcare/listsServices/listsentries.cfc
>>   C branches/production/com/palcare/listsServices/lists.cfc
>>   C branches/production/com/palcare/listsServices/listsService.cfc
>> Skipped 'branches/production/com/palcare/listsServices/ListsService.cfc'
>> U   branches/production/com/palcare/listsServices
>> Summary of conflicts:
>>  Tree conflicts: 3
>>  Skipped paths: 2
>> 
>> 
>> I have read the svn-book and;
>> Using everyone's good friend Mr google I found these;
>> http://stackoverflow.com/questions/738367/why-am-i-getting-tree-conflicts-in-subversion
>> http://blogs.collab.net/subversion/2009/03/subversion-160-and-tree-conflicts/
>> 
>> But I must be missing something...
>> They all seem to be about having local edits in a file that has subsequently 
>> been deleted in the repository  - prior to me getting my edits committed.
>> 
>> I'm not sure how to transpose that into my case.
>> I have no local edit of the destination path/files.
>> They are up to date.(svn update)
>> (In fact I even went to far as to use the OS to delete the path and run svn 
>> update to restore them to the current version in the repo)
>> 
>> Ultimately I simply want my production branch to match exactly what is in 
>> the trunk for the specified path.
>> 
>> I "thought";
>> Surely accept="theirs-full" should be saying I don't care about my working 
>> copy's destination path  - simply make it look like the source path?
>> 
>> I could simply replace with an os  file copy and then commit the branch - 
>> but that just seems wrong.
>> 
>> Can anyone can shed some light on the matter for me, please?
> 
> Hi Gavin,
> 
> the --accept option only works for text and property conflicts at the
> moment. There are plans to extend this to handle tree conflicts, too.
> This depends on wc-ng though so we'll pick up this up again some time
> after the 1.7.0 release.
> 
> Local changes in the working copy can cause tree conflicts during updates
> and merges. But during merges, "local" edits are considered local to
> the merge target _branch_ rather than just the working copy.
> E.g. if you rename a file on a branch and commit this rename and then
> merge an edit for the file at its old location from trunk you'll get a tree
> conflict even though the "local" change (rename) has already been committed.
> 
> Also, the way you are invoking svn merge seems dubious.
> You are doing a 2-URL merge across the entire revision range.
> If you use merge-tracking you'd usually avoid 2-URL merges if at all
> possible. The way you've run this merge may cause Subversion to apply
> changes that were already merged between these branches again which can
> lead to spurious conflicts.
> 
> You might want to take a look at the merge patterns described in the
> new help text for svn merge (e.g. posted here:
> http://svn.haxx.se/users/archive-2011-04/0209.shtml).
> If you stick to those patterns chances are your merges will mostly
> be conflict-free expect for obvious conflicts.

Reply via email to