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