[Svnmerge] transitive merging trickiness problem

Jon Schewe jpschewe at mtu.net
Mon Apr 20 04:51:03 PDT 2009


Ted Stern wrote:
> Hi,
>
> I seem to have gotten into a pickle.  Here are my steps:
>
> - Trunk branched to branch A
>
> - In A working copy, 
>   svnmerge.py init TRUNK_URL (+ commit)
>
> - A branched to branch B
>
> - B thus inherits A's trunk tracking.
>   But I want B to track only A and not have to worry about specifying
>   "-S /path/to/A" every time I do an svnmerge, so ...
>
> - In B working copy, 
>
>   svnmerge.py init TRUNK_URL (+ commit)
>
>   
Here you want to init with A_URL rather than TRUNK_URL.

> - In B working copy, 
>
>   svnmerge.py uninit -S TRUNK_URL (+ commit)
>
>   *** IS THIS RECOMMENDED? ***
>
>   
Yes, you'll need to do this.
> - New changes on trunk.
>
> - Merge changes to A using svnmerge.py.  Everything is fine.
>
> - Now in B, attempt to merge A's updates.  
>
> Here's where the problem arises:
>
> The actual file updates are fine, but there is a conflict on the
> svnmerge-integrated property in '.', the top directory of B's working
> copy.
>
> I'm assuming it's because the trunk merge info from A's merge doesn't
> have a place to go anymore.
>
> Since the svnmerge-integrated property in B's working copy appeared to
> be updated correctly to reflect the merge from A, I resolved it using
>
>    svn resolve --accept mine-full .
>
> and then committed the svnmerge changes.  But what will happen next
> time?
>
>   
I've found that this property gets in a conflicted state from time to
time and I don't know why. The only advice I have is to run "svn
resolved ." once svnmerge.py finishes. svnmerge.py has taken care of
setting the property appropriately.

> Is this a recommended procedure, or do I have to leave the
> trunk-tracking info in branch B alone and suffer with
>
>      svnmerge.py merge -S /path/to/A
>
> every time I do a merge in B?
>
>   
No, you should be able to do this just fine. I've done this on other
projects as well. Since svnmerge.py isn't integrated into svn directly
the properties get copied when you create the branch and you need to use
svnmerge.py to uninit any merge tracking information from the newly
created branch.

Also note that the -S will work with any substring of the path as long
as it's unique. So you can likely just use
 svnmerge.py merge -S A

-- 
Jon Schewe | http://mtu.net/~jpschewe
If you see an attachment named signature.asc, this is my digital
signature. See http://www.gnupg.org for more information.

For I am convinced that neither death nor life, neither angels nor
demons, neither the present nor the future, nor any powers,
neither height nor depth, nor anything else in all creation, will
be able to separate us from the love of God that is in Christ
Jesus our Lord. - Romans 8:38-39




More information about the Svnmerge mailing list