[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit --targets behaviour change in 1.7?

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Sun, 13 Nov 2011 08:03:19 +0200

On Sunday, November 13, 2011 1:31 PM, "Fergus Slorach" <sugref_at_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__':
]]]
Received on 2011-11-13 07:03:55 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.