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, > > fergus >
I 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__': ]]]