reintegrate fails in 1.6.x from 1.6.13 on, when the target has explicit subtree
mergeinfo and the source does not. The following script shows the problem (I'll
attach it as well). The final reintegrate merge works with 1.6.12 and 1.7 but
fails with 1.6.13 on. The error is:
svn: Reintegrate can only be used if revisions 4 through 11 were previously
merged from file:///home/pm/sw/subversion/obj/repo/A to the reintegrate source,
but this is not the case:
Y/B
Missing ranges: /A/B:4-10
However the mergeinfo for Y is /A:4-10 and Y/B has no mergeinfo to override it.
The problem can be worked around by doing a --dry-run merge on the source subdir.
#!/bin/sh -e
svn=svn ; svnadmin=svnadmin ; svnlook=svnlook ; svnmucc=svnmucc
repo=repo ; wc=wc ; url=file:///`pwd`/$repo
rm -rf $repo $wc
$svnadmin create $repo
$svn mkdir -mm $url/A
$svn mkdir -mm $url/A/B
$svnmucc -mm -- put - $url/A/B/f <<EOD
ABf
XBf
YBf
EOD
$svn cp -mm $url/A $url/Y
$svn cp -mm $url/A $url/X
$svnmucc -mm -- put - $url/A/B/f <<EOD
ABf1
XBf
YBf
EOD
$svnmucc -mm -- put - $url/Y/B/f <<EOD
ABf
XBf
YBf1
EOD
$svnmucc -mm -- put - $url/X/B/f <<EOD
ABf
XBf1
YBf
EOD
$svn co $url/X $wc
$svn merge --accept postpone ^/A $wc
$svn ci -mm $wc
$svn sw $url/A $wc
$svn merge --reintegrate ^/X/B $wc/B
$svn ci -mm $wc
$svn sw $url/Y $wc
$svn merge --accept postpone ^/A $wc
$svn merge -r9:4 ^/X/B wc/B
$svn ci -mm $wc
$svn sw $url/A $wc
$svn merge --reintegrate ^/Y $wc