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

Does a path ever need mergeinfo from itself?

From: Paul Burba <pburba_at_collab.net>
Date: Mon, 14 Jan 2008 11:55:17 -0800

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

This is an archived mail posted to the Subversion Dev mailing list.