Hello, I'm hitting what appears to be a bug in subversion. The problem is that I get incorrect subtree mergeinfo after a merge to my branch; the subtree is not recording the merge, and this later prevents reintegrate from working (via "Reintegrate can only be used if revisions [X] through [Y] were previously merged from [URL]..."). It appears that this bug is triggered by a differentbranch->trunk cherrypicking merge earlier in the history of the subtree.
I've distilled this down to a simple test case that reproduces the problem. The attached "cherrypick-mergeinfo-fail-test.sh" script will run the steps necessary to demonstrate. I've also attached the output this script generates as "cherrypick-test-output.txt", so you can see the problem without running the script. I'm still on subversion 1.6.5 (r38866), but the 1.6.6 CHANGES file doesn't appear to address this. I've tried this on a standard Mac OS X SnowLeopard (10.6.2) system with the system install of subversion. Is there something I've actually done wrong here that's triggering the problem? Or does this appear to be a bug? Thanks very much, - Rick Ballard
cherrypick-mergeinfo-fail-test.sh
Description: Binary data
Committed revision 1. Checked out revision 1. A trunk-wc/subtree A trunk-wc/subtree/file.txt Adding trunk-wc/subtree Adding trunk-wc/subtree/file.txt Transmitting file data . Committed revision 2. Committed revision 3. A branch1-wc/subtree A branch1-wc/subtree/file.txt Checked out revision 3. Sending branch1-wc/subtree/file.txt Transmitting file data . Committed revision 4. At revision 4. --- Merging r4 into 'trunk-wc/subtree': U trunk-wc/subtree/file.txt Sending trunk-wc/subtree Sending trunk-wc/subtree/file.txt Transmitting file data . Committed revision 5. At revision 5. Committed revision 6. Committed revision 7. A branch2-wc/subtree A branch2-wc/subtree/file.txt Checked out revision 7. A branch3-wc/subtree A branch3-wc/subtree/file.txt Checked out revision 7. Sending branch2-wc/subtree/file.txt Transmitting file data . Committed revision 8. At revision 8. --- Merging differences between repository URLs into 'trunk-wc': U trunk-wc/subtree/file.txt Sending trunk-wc Sending trunk-wc/subtree Sending trunk-wc/subtree/file.txt Transmitting file data . Committed revision 9. ### ### Mergeinfo on branch3 pre-merge: ### Properties on 'branch3-wc/subtree': svn:mergeinfo /branches/branch1/subtree:4 ### --- Merging r7 through r9 into 'branch3-wc': U branch3-wc/subtree/file.txt U branch3-wc/subtree U branch3-wc Sending branch3-wc Sending branch3-wc/subtree Sending branch3-wc/subtree/file.txt Transmitting file data . Committed revision 10. ### ### Mergeinfo on branch3 subtree was not set correctly by merge: Should include trunk revisions just merged. ### Properties on 'branch3-wc': svn:mergeinfo /branches/branch2:6-8 /trunk:7-9 Properties on 'branch3-wc/subtree': svn:mergeinfo /branches/branch1/subtree:4 /branches/branch2/subtree:6-8 ### ### This will cause the next command (a reintegrate) to fail. ### At revision 10. svn: Reintegrate can only be used if revisions 7 through 10 were previously merged from file:///Users/rick/Desktop/repos/trunk to the reintegrate source, but this is not the case: branches/branch3/subtree Missing ranges: /trunk/subtree:7-9