If I try to reverse-merge the contents of a specific file over a range
of commits that includes a rename, svn seems to break the commits up
at the rename and try to reverse-merge in the wrong order.

svn merge --accept=postpone -r5:1 new
--- Reverse-merging r3 through r2 into 'new':
C    new
--- Reverse-merging r5 through r4 into 'new':
C    new
Summary of conflicts:
  Text conflicts: 2

There would have been no conflicts if it did "r5 through r4" first,
then "r3 through r2" second.

Attached is a script that demonstrates the issue, as well as the
output of the script on my machine.  The last command in the script is
the one that has the unexpected conflicts.

Thanks,
-jim

Attachment: test.sh
Description: Bourne shell script

Checked out revision 0.
+ svn --version
+ head -1
svn, version 1.6.17 (r1128011)
+ echo r1
+ svn add file
A         file
+ svn commit -m r1
Adding         file
Transmitting file data .
Committed revision 1.
+ echo r2
+ svn commit -m r2
Sending        file
Transmitting file data .
Committed revision 2.
+ echo r3
+ svn commit -m r3
Sending        file
Transmitting file data .
Committed revision 3.
+ svn merge --dry-run --accept=postpone -r3:1 file
--- Reverse-merging r3 through r2 into 'file':
U    file
+ svn mv file new
A         new
D         file
+ svn commit -m 'r4 renamed'
Deleting       file
Adding         new

Committed revision 4.
+ echo r5
+ svn commit -m r5
Sending        new
Transmitting file data .
Committed revision 5.
+ : ----------------------------------------------------
+ : ----------------------------------------------------
+ svn merge --accept=postpone -r5:1 new
--- Reverse-merging r3 through r2 into 'new':
C    new
--- Reverse-merging r5 through r4 into 'new':
C    new
Summary of conflicts:
  Text conflicts: 2
+ : ----------------------------------------------------
+ : ----------------------------------------------------

Reply via email to