> From: Z W [mailto:mpc8...@gmail.com] > Sent: Tuesday, May 07, 2013 11:53 AM > To: users@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.