On trunk, the issue-2897 branch, and reintegrate branch if we copy a
path, merge from the source to the copy, then merge from the copy back
to the source (a.k.a. a cyclic merge), then the source ends up with
mergeinfo from itself. For example, start with a vanilla greek tree:
Copy 'A' to 'A_COPY' and commit as r2:
>svn copy %url%/A merge_tests-45\A_COPY
A merge_tests-45\A_COPY\B
A merge_tests-45\A_COPY\B\lambda
A merge_tests-45\A_COPY\B\E
A merge_tests-45\A_COPY\B\E\alpha
A merge_tests-45\A_COPY\B\E\beta
A merge_tests-45\A_COPY\B\F
A merge_tests-45\A_COPY\mu
A merge_tests-45\A_COPY\C
A merge_tests-45\A_COPY\D
A merge_tests-45\A_COPY\D\gamma
A merge_tests-45\A_COPY\D\G
A merge_tests-45\A_COPY\D\G\pi
A merge_tests-45\A_COPY\D\G\rho
A merge_tests-45\A_COPY\D\G\tau
A merge_tests-45\A_COPY\D\H
A merge_tests-45\A_COPY\D\H\chi
A merge_tests-45\A_COPY\D\H\omega
A merge_tests-45\A_COPY\D\H\psi
Checked out revision 1.
A merge_tests-45\A_COPY
>svn ci -m "" merge_tests-45
Adding merge_tests-45\A_COPY
Committed revision 2.
Make a text change under 'A' and commit as r3:
>echo text change >> merge_tests-45\A\mu
>svn ci -m "" merge_tests-45
Sending merge_tests-45\A\mu
Transmitting file data .
Committed revision 3.
Merge all available changes from 'A' to 'A_COPY' and commit as r4:
>svn merge %url%/A merge_tests-45\A_COPY
--- Merging r2 through r3 into 'merge_tests-45\A_COPY':
U merge_tests-45\A_COPY\mu
Props on 'A_COPY' reflect the merge:
>svn pl -vR merge_tests-45
Properties on 'merge_tests-45\A_COPY':
svn:mergeinfo : /A:2-3
>svn ci -m "" merge_tests-45
Sending merge_tests-45\A_COPY
Sending merge_tests-45\A_COPY\mu
Transmitting file data .
Committed revision 4.
Now merge all available changes from 'A_COPY' back to 'A':
>svn merge %url%/A_COPY merge_tests-45\A
--- Merging r2 through r4 into 'merge_tests-45\A':
U merge_tests-45\A
Now we have mergeinfo for 'A' on 'A':
>svn pl -vR merge_tests-45
Properties on 'merge_tests-45\A':
svn:mergeinfo : /A:2-3
/A_COPY:2-4
Properties on 'merge_tests-45\A_COPY':
svn:mergeinfo : /A:2-3
(The resulting mergeinfo on the reintegrate branch is slightly
different):
>svn pl -vR merge_tests-45
Properties on 'merge_tests-45\A':
svn:mergeinfo : /A:2-3
/A_COPY:4
Properties on 'merge_tests-45\A_COPY':
svn:mergeinfo : /A:2-3
If we do the merge using the --reintegrate option on the reintegrate
branch things look a lot better:
>svn pl -vR merge_tests-45
Properties on 'merge_tests-45\A':
svn:mergeinfo : /A_COPY:2-4
Properties on 'merge_tests-45\A_COPY':
svn:mergeinfo : /A:2-3
Ignorning the use of --reintegrate for a moment, is there any reason we
ever need the '/A:2-3' mergeinfo on 'A' itself? Am I missing something
obvious here?
Paul
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-01-14 20:55:29 CET