Hi Daniel, Thanks for the quick response.
Here's the recipe - this works in 1.6 but fails with 1.7 All the best, fergus On 11/13/2011 07:03 PM, Daniel Shahaf wrote:
On Sunday, November 13, 2011 1:31 PM, "Fergus Slorach"<sug...@gmail.com> wrote:For 'undelete' in svn, we do the following: > svn rm bic4 > svn commit -m 'Test delete' Deleting bic4/schematic Committed revision 6 > svn merge --change -6 . --- Reverse-merging r6 into '.': A bic4 A bic4/schematic A bic4/schematic/thumbnail_128x128.png A bic4/schematic/master.tag A bic4/schematic/data.dm A bic4/schematic/sch.oa --- Recording mergeinfo for reverse merge of r6 into '.': U . --- Eliding mergeinfo from '.': U . (The last two messages are new in 1.7) create a targets file containing: bic4 bic4/schematic bic4/schematic/thumbnail_128x128.png bic4/schematic/master.tag bic4/schematic/data.dm bic4/schematic/sch.oa and commit the changes: > svn commit --targets=<file> -m 'Undelete bic4' This works in svn 1.6, but fails in svn 1.7 with the following message: svn: E200009: Commit failed (details follow): svn: E200009: '<path>/bic4/schematic' is not under version control and is not part of the commit, yet its child '<path>/bic4/schematic/sch.oa' is part of the commit I can workaround this by changing the contents of the target file but this looks like a bug, because 'bic4/schematic' is in the targets file. Thanks, fergusI can't seem to reproduce this: I tried the patch below and running the tests against my system's 1.6.17 (with './commit_tests.py --bin /usr/bin'), but they pass. Could you please provide a complete reproduction recipe? That means either a patch to commit_tests.py, or a #!/bin/sh script that starts by creating an empty repository and committing to it. See http://subversion.apache.org/docs/community-guide/repro-template.sh Thanks! Daniel [[[ Index: subversion/tests/cmdline/commit_tests.py =================================================================== --- subversion/tests/cmdline/commit_tests.py (revision 1201404) +++ subversion/tests/cmdline/commit_tests.py (working copy) @@ -2826,6 +2826,28 @@ def commit_incomplete(sbox): wc_dir) +#---------------------------------------------------------------------- +def commit_add_subadd(sbox): + "commit add and its child" + + sbox.build() + wc_dir = sbox.wc_dir + + wcroot = sbox.ospath('') + + sbox.simple_rm('A') + sbox.simple_commit(message='rm') # r2 + + # must be below sbox.simple_*() + os.chdir(wc_dir) + + svntest.main.run_svn(None, 'up') + svntest.main.run_svn(None, 'merge', '-c', '-2', '.') + open('targets', 'w').write('\n'.join(map(lambda x: x[len(wcroot)+1:], + svntest.main.greek_state.desc.keys()) + )) + svntest.main.run_svn(None, 'commit', '-mm', '--targets=./targets') + ######################################################################## # Run the tests @@ -2894,6 +2916,7 @@ test_list = [ None, tree_conflicts_resolved, commit_multiple_nested_deletes, commit_incomplete, + commit_add_subadd, ] if __name__ == '__main__': ]]]
svn-undelete.sh
Description: application/shellscript