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

Reply via email to