You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Fergus Slorach <su...@gmail.com> on 2011/11/13 01:31:05 UTC

svn commit --targets behaviour change in 1.7?

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

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

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
On Sunday, November 13, 2011 1:31 PM, "Fergus Slorach" <su...@gmail.com> wrote:
> 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
...
> 
> 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.

Seems like a bug.  I'll look into a regression test ensuring that no
error is given when the root of the added subtree ("oproot") is also an
explicit target.

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

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
On Sunday, November 13, 2011 12:55 PM, "Daniel Shahaf" <d....@daniel.shahaf.name> wrote:
> I'll transform that into an XFail regression test now.

r1201419

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

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
On Sunday, November 13, 2011 11:38 PM, "Fergus Slorach" <su...@gmail.com> wrote:
> Right, it works with svn 1.6. It's 1.7 that doesn't work.
> 
>  > ./svn-undelete.sh
...
> svn: E200009: '/home/fergus/downloads/wc/A/D/H' is not under version control and is not part of the commit, yet its child '/home/fergus/downloads/wc/A/D/H/psi' is part of the commit
> 
> 

Doh, my mistake.  I'll transform that into an XFail regression test now.  Thanks again.

> 
> On 11/13/2011 11:30 PM, Daniel Shahaf wrote:
> > On Sunday, November 13, 2011 11:07 PM, "Fergus Slorach"<su...@gmail.com>  wrote:
> >> 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
> >>
> >
> > Thanks for the script.  It appears to work for me using the system's svn 1.6.17:
> >
> > [[[
> > daniel@tarsus:/tmp>  sh ./svn-undelete.sh
> > ### Making a Greek Tree for import...
> > ### Done.
> >
> > ### Importing it...
> > ### Done.
> >
> > ### This is where your reproduction recipe goes. ###
> > D         A/D/gamma
> > D         A/D/G/pi
> > D         A/D/G/rho
> > D         A/D/G/tau
> > D         A/D/G
> > D         A/D/H/chi
> > D         A/D/H/omega
> > D         A/D/H/psi
> > D         A/D/H
> > D         A/D
> > Deleting       A/D
> >
> > Committed revision 2.
> > At revision 2.
> > --- Reverse-merging r2 into '.':
> > A    A/D
> > A    A/D/gamma
> > A    A/D/G
> > A    A/D/G/pi
> > A    A/D/G/rho
> > A    A/D/G/tau
> > A    A/D/H
> > A    A/D/H/chi
> > A    A/D/H/omega
> > A    A/D/H/psi
> > Adding         A/D
> > Adding         A/D/G
> > Adding         A/D/G/pi
> > Adding         A/D/G/rho
> > Adding         A/D/G/tau
> > Adding         A/D/H
> > Adding         A/D/H/chi
> > Adding         A/D/H/omega
> > Adding         A/D/H/psi
> > Adding         A/D/gamma
> >
> > Committed revision 3.
> > daniel@tarsus:/tmp>  svn --version -q
> > 1.6.17
> > daniel@tarsus:/tmp>
> > ]]]
> >
> > Is that the expected "works as intended" output?  What version of 1.6.x
> > are you using?  Could you try upgrading to 1.6.17?
> >
> > Daniel
> >
> 

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

Posted by Fergus Slorach <su...@gmail.com>.
Right, it works with svn 1.6. It's 1.7 that doesn't work.

 > ./svn-undelete.sh
### Making a Greek Tree for import...
### Done.

### Importing it...

Committed revision 1.
### Done.

### This is where your reproduction recipe goes. ###
D         A/D
D         A/D/G
D         A/D/G/pi
D         A/D/G/rho
D         A/D/G/tau
D         A/D/H
D         A/D/H/chi
D         A/D/H/omega
D         A/D/H/psi
D         A/D/gamma
Deleting       A/D

Committed revision 2.
Updating '.':
At revision 2.
--- Reverse-merging r2 into '.':
A    A/D
A    A/D/gamma
A    A/D/G
A    A/D/G/pi
A    A/D/G/rho
A    A/D/G/tau
A    A/D/H
A    A/D/H/chi
A    A/D/H/omega
A    A/D/H/psi
--- Recording mergeinfo for reverse merge of r2 into '.':
  U   .
--- Eliding mergeinfo from '.':
  U   .
svn: E200009: Commit failed (details follow):
svn: E200009: '/home/fergus/downloads/wc/A/D/H' is not under version control and is not part of the commit, yet its child '/home/fergus/downloads/wc/A/D/H/psi' is part of the commit



On 11/13/2011 11:30 PM, Daniel Shahaf wrote:
> On Sunday, November 13, 2011 11:07 PM, "Fergus Slorach"<su...@gmail.com>  wrote:
>> 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
>>
>
> Thanks for the script.  It appears to work for me using the system's svn 1.6.17:
>
> [[[
> daniel@tarsus:/tmp>  sh ./svn-undelete.sh
> ### Making a Greek Tree for import...
> ### Done.
>
> ### Importing it...
> ### Done.
>
> ### This is where your reproduction recipe goes. ###
> D         A/D/gamma
> D         A/D/G/pi
> D         A/D/G/rho
> D         A/D/G/tau
> D         A/D/G
> D         A/D/H/chi
> D         A/D/H/omega
> D         A/D/H/psi
> D         A/D/H
> D         A/D
> Deleting       A/D
>
> Committed revision 2.
> At revision 2.
> --- Reverse-merging r2 into '.':
> A    A/D
> A    A/D/gamma
> A    A/D/G
> A    A/D/G/pi
> A    A/D/G/rho
> A    A/D/G/tau
> A    A/D/H
> A    A/D/H/chi
> A    A/D/H/omega
> A    A/D/H/psi
> Adding         A/D
> Adding         A/D/G
> Adding         A/D/G/pi
> Adding         A/D/G/rho
> Adding         A/D/G/tau
> Adding         A/D/H
> Adding         A/D/H/chi
> Adding         A/D/H/omega
> Adding         A/D/H/psi
> Adding         A/D/gamma
>
> Committed revision 3.
> daniel@tarsus:/tmp>  svn --version -q
> 1.6.17
> daniel@tarsus:/tmp>
> ]]]
>
> Is that the expected "works as intended" output?  What version of 1.6.x
> are you using?  Could you try upgrading to 1.6.17?
>
> Daniel
>

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

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
On Sunday, November 13, 2011 11:07 PM, "Fergus Slorach" <su...@gmail.com> wrote:
> 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
> 

Thanks for the script.  It appears to work for me using the system's svn 1.6.17:

[[[
daniel@tarsus:/tmp> sh ./svn-undelete.sh 
### Making a Greek Tree for import...
### Done.

### Importing it...
### Done.

### This is where your reproduction recipe goes. ###
D         A/D/gamma
D         A/D/G/pi
D         A/D/G/rho
D         A/D/G/tau
D         A/D/G
D         A/D/H/chi
D         A/D/H/omega
D         A/D/H/psi
D         A/D/H
D         A/D
Deleting       A/D

Committed revision 2.
At revision 2.
--- Reverse-merging r2 into '.':
A    A/D
A    A/D/gamma
A    A/D/G
A    A/D/G/pi
A    A/D/G/rho
A    A/D/G/tau
A    A/D/H
A    A/D/H/chi
A    A/D/H/omega
A    A/D/H/psi
Adding         A/D
Adding         A/D/G
Adding         A/D/G/pi
Adding         A/D/G/rho
Adding         A/D/G/tau
Adding         A/D/H
Adding         A/D/H/chi
Adding         A/D/H/omega
Adding         A/D/H/psi
Adding         A/D/gamma

Committed revision 3.
daniel@tarsus:/tmp> svn --version -q
1.6.17
daniel@tarsus:/tmp> 
]]]

Is that the expected "works as intended" output?  What version of 1.6.x
are you using?  Could you try upgrading to 1.6.17?

Daniel

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

Posted by Fergus Slorach <su...@gmail.com>.
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"<su...@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__':
> ]]]
>

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

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
On Sunday, November 13, 2011 1:31 PM, "Fergus Slorach" <su...@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__':
]]]