If a merge reintegrate source (^/SOURCE) has a replacement in its history in rN,
then the mergeinfo '/SOURCE:N' should not be recorded on the reintegrate target.
Prabhu Gnana Sundar found this bug, noting that it has occurred in our own
repository, see http://svn.haxx.se/dev/archive-2011-07/0432.shtml.
A quick example:
Make a branch:
>svn copy ^^/A ^^/branch -m "make a branch" -q
Committed revision 2.
>svn up -q
Make edits on branch and "trunk":
>echo trunk edit> A\mu
>svn ci -m "trunk edit" -q
>echo branch edit> branch\B\lambda
>svn ci -m "branch edit" -q
>svn up -q
Sync the branch with its parent and make an additional edit on the branch
unlrelated to the commit. Commit both as r5:
>svn merge ^^/A branch -q
>echo additional branch changes with sync merge> branch\D\H\omega
>svn ci -m "Sync A to branch and additional edits" -q
>svn up
Updating '.':
At revision 5.
Replace the branch with itself @ rev4:
>svn del branch -q
>svn copy ^^/branch@4 branch -q
>svn st
R + branch
>svn ci -m "Replace branch with branch@4" -q
>svn up
Updating '.':
At revision 6.
Reintegrate the branch:
>svn merge ^^/branch A --reintegrate
--- Merging differences between repository URLs into 'A':
U A\B\lambda
--- Recording mergeinfo for merge between repository URLs into 'A':
U A
Mergeinfo should be /branch:2-4,6. The changes made in revision 5 on branch
were never merged back to A:
>svn pl -vR
Properties on 'A':
svn:mergeinfo
/branch:2-6
I don't see any serious problems arising from this in practice so I'm setting
the priority to P4.