[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Need information on tree conflicts

From: Chuck Holzwarth <chuck_holzwarth_at_yahoo.com>
Date: Tue, 12 May 2009 14:18:32 -0700 (PDT)

We are seeing tree conflicts during merges after going to 1.6.1. My understanding is that the tree conflict is where two objects exist on different branches with the same name. The documentation I have found does not give a good indication of what they are or the method to resolve. In some cases, the user is trying to merge the trunk into a branch. In this case, it would be good to resolve using the object from the trunk. If merging a branch to the trunk, we would want to keep the version that is on the trunk. The two buttons are confusing. In text conflicts, the info is presented as mine and theirs. One of the developers has done some testing and come up with the following:

  During the meeting you reiterated that, given Branch 1 (which is a local working folder) and Branch 2 (a repository folder), when Branch 2 is merged into Branch 1 and a tree conflict is found, you believe that resolving with local means that incoming changes (from Branch 2) will be kept and when resolving using repository that it is referring to the local copy’s repository version (Branch 1).

  I did a simple test that shows the opposite is true: When selecting local, it means your working copy prior to any merged updates, and the repository means the incoming changes.

  Here’s what you can do to reproduce my test (all of these instructions take place in the repo-browser)
1. Create a TestingMerging folder
2. Create a subfolder in TestingMerging called Branch1
3. Copy the Branch1 folder so that TestingMerging has a Branch2 and Branch3 folder
4. In TestingMerging\Branch1, create a Folder1 directory
5. Copy the TestingMerging\Branch1\Folder1 directory into the TestingMerging\Branch3 directory
6. Create a Folder1 folder in the TestingMerging\Branch2 directory

Your structure should look like this now:
• TestingMerging
i. Branch1
1. Folder1(a)
ii. Branch2
1. Folder1(b)
iii. Branch3
1. Folder1(a)
This is where Branch1 and Branch3’s Folder1 directory are identical (marked with an a), and Branch2’s Folder1 is a different object (marked with a b)

1. Check out TestingMerging to your computer somewhere
2. Navigate to Branch1 and merge into it Branch2. You will get a tree conflict.
3. Right click in Branch1, select TortoiseSVN -> Resolved…, and click the “Keep the local directory” button
4. Commit your changes.

Here’s the test that shows which object you end up getting: Now, do a test merge of Branch1 into Branch3: you should see no conflicts. Try test merging Branch2 into Branch3 and you will see conflicts.


To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-05-13 07:00:09 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.