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

RE: Branch / merge issue - bug or working as intended?

From: Bob Archer <bob.archer_at_amsi.com>
Date: Thu, 12 Nov 2009 12:15:00 -0500

> I'm playing around with some branching strategies and I'm getting
> merge
> conflicts where I don't expect to see them.
>
> Basically I'm just trying to push some trivial, non-conflicting,
> edits
> back and forth from trunk to a branch:
>
> 1. create branch
> 2. edit on trunk, commit
> 3. merge trunk changes to branch, edit on branch, commit
> 4. merge branch changes to trunk:
> Conflict discovered in 'afile'.
> Select: (p) postpone, (df) diff-full, (e) edit,
> (mc) mine-conflict, (tc) theirs-conflict,
> (s) show all options: dc
> initial file
> <<<<<<< MINE (select with 'mc') (2)
> trunk modification
> ||||||| ORIGINAL (2,0)
> =======
> trunk modification
> additional branch modifications
> >>>>>>> THEIRS (select with 'tc') (2,2)
>
> Can someone tell me if this is a bug or just a problem with the way
> I am
> using svn?

If you are not specifying a rev range for the merge then it is taking all the changes on branch and merging them back to trunk. But, since you merged in truck that diff from the branch will include the changes you made from trunk. Here from the 1.4 svn book:

" At some point, you'll be ready to merge the "synchronized" feature branch back to the trunk. To do this, begin by doing a final merge of the latest trunk changes to the branch. When that's done, the latest versions of branch and trunk will be absolutely identical except for your branch changes. So in this special case, you would merge by comparing the branch with the trunk:"

1.5 added merge tracking and it will do the above for you automatically when you merge back to branch but you need to specify --reintegrate...

BOb

>
> Below is a simple shell script to demonstrate the issue. I've
> tried
> 1.6.3 and 1.6.5.
>
> Thanks,
> Eric
>
> #!/bin/sh
>
> rm -rf tmp; mkdir tmp; cd tmp
>
> repos=`pwd`/repos
> svnadmin create repos
> svn co file://$repos wc
> cd wc
>
> mkdir trunk branches
> echo "initial file" > trunk/afile
> svn add trunk branches
> svn ci -m 'init'
> svn switch file://$repos/trunk
>
> svn cp file://$repos/trunk file://$repos/branches/A -m 'Create
> Branch A'
>
> echo "trunk modification" >> afile
> svn ci -m 'trunk modification'
>
> svn switch file://$repos/branches/A
> svn merge file://$repos/trunk
> echo "additional branch modifications" >> afile
> svn ci -m 'Merge updates from trunk with branch modifications'
>
> svn switch file://$repos/trunk
> svn merge file://$repos/branches/A
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMes
> sageId=2417144
>
> To unsubscribe from this discussion, e-mail: [users-
> unsubscribe_at_subversion.tigris.org].

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2417151

To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-11-12 18:15:56 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.