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

RE: mergeinfo between svn copied branches and merges

From: Andrew Reedick <Andrew.Reedick_at_cbeyond.net>
Date: Tue, 7 May 2013 17:14:59 -0400

> From: Z W [mailto:mpc8250_at_gmail.com]
> Sent: Tuesday, May 07, 2013 11:53 AM
> To: users_at_subversion.apache.org
> Subject: mergeinfo between svn copied branches and merges
>
> we have branchA
> we svn copy branchA to produce branchB
> branches A and B continues development and checkins
> branchA is merged to branch B continuously
> branchA finishes, tagged
> we then svn copy branchA to produce branchC
> we like to continue branchC merging to branchB
> we hear u clearly that the merge info are copied between branches
> we performed svn mergeinfo merged on branchB working copy
> with branchA
> we could see the correct list of merged rev numbers
> we performed svn mergeinfo eligible on branchB working copy with branch A; we see correct list of eligigle rev numbers
> we learn that these numbers are used by SVN to calculate what needs to be merged from branchB to branchA (-reintegrate)
> we performed svn mergeinfo merged on branchB working copy with branchC
> we see a new list (not including list of merged rev numbers from branchA)

> we learn that if we reintegrate from branchB to branchC, because those list of merged rev numbers from branchA are not there, SVN would not know those rev numbers changes already exist in branchC
> so SVN would try to reintegrate those list of merged rev numbers from branchA on branchC
> thus causing tree conflict.

Svn will implicitly know about the rev numbers from branchA because branchA is a subset of branchC. Go here http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge.nomergedata and read "Natural History and Implicit Mergeinfo".

In this case, all you should have to do is:
a) merge branchC UP to branchB
b) merge --reintegrate branchB DOWN to branchC.
Step a) will pick up any branchA changes (because all of branchA is a subset of branchC.)

If you did additional work on branchA *after* creating branchC, then you would need to:
a) merge branchA UP to branchB,
b) merge branchC UP to branchB,
c) merge --reintegrate branchB down to branchC.
Received on 2013-05-07 23:16:14 CEST

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.