You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Stefan Küng <to...@gmail.com> on 2011/11/21 19:19:12 UTC
hosed working copy after interrupted rename
Hi,
Stumbled upon the following problem with 1.7.1+ (latest 1.7.x branch):
$ svn co http://tvserver/svn/Test/trunk/TortoiseSVN/Languages renametest
$ cd renametest
- now open another console window in subfolder 'de' (so that the folder
is locked and can't be removed)
$ svn mv de de2
A de2
svn: E720032: Can't move '.....de' to '....de2': The process cannot
access the file because it is being used by another process.
After that, the folder 'de2' is marked as 'missing' when doing an 'svn
st'. Reverting or updating 'restores' that folder, marked as 'normal'.
But since there was never a commit with that name, the folder 'de2' is
now marked in the wc as if it is in the repository.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
Re: hosed working copy after interrupted rename
Posted by Stefan Küng <to...@gmail.com>.
On 21.11.2011 20:45, Philip Martin wrote:
> Stefan Küng<to...@gmail.com> writes:
>
>> But it seems it works now as expected. Had updated my working copy of
>> SVN but forgot to do a rebuild so I had a version that's about a week
>> old. Now that I did a rebuild, it works and a revert actually removes
>> the missing folder properly.
>>
>> But I can't see anything in the changelog that would explain that it
>> works now?
>
> I don't see anything either. Perhaps the failing build was made with
> some local mods?
>
I haven't modified anything in the subversion code.
The only thing I messed with lately was with some build flags for the
compiler.
Maybe an optimization bug that triggered this?
Anyway: sorry for the noise.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
Re: hosed working copy after interrupted rename
Posted by Philip Martin <ph...@wandisco.com>.
Stefan Küng <to...@gmail.com> writes:
> But it seems it works now as expected. Had updated my working copy of
> SVN but forgot to do a rebuild so I had a version that's about a week
> old. Now that I did a rebuild, it works and a revert actually removes
> the missing folder properly.
>
> But I can't see anything in the changelog that would explain that it
> works now?
I don't see anything either. Perhaps the failing build was made with
some local mods?
--
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com
Re: hosed working copy after interrupted rename
Posted by Stefan Küng <to...@gmail.com>.
On 21.11.2011 19:56, Philip Martin wrote:
> Stefan Küng<to...@gmail.com> writes:
>
>> Stumbled upon the following problem with 1.7.1+ (latest 1.7.x branch):
>>
>> $ svn co http://tvserver/svn/Test/trunk/TortoiseSVN/Languages renametest
>> $ cd renametest
>> - now open another console window in subfolder 'de' (so that the
>> folder is locked and can't be removed)
>> $ svn mv de de2
>> A de2
>> svn: E720032: Can't move '.....de' to '....de2': The process cannot
>> access the file because it is being used by another process.
>
> Where does the code fail? Is it inside the svn_io_file_rename call in
> svn_wc_move?
>
>> After that, the folder 'de2' is marked as 'missing' when doing an 'svn
>> st'. Reverting or updating 'restores' that folder, marked as
>> normal'. But since there was never a commit with that name, the folder
>> de2' is now marked in the wc as if it is in the repository.
>
> Why does revert restore de2? It's a copy, revert should revove it. If
> I try to reproduce by interrupting a mv on Linux:
>
> $ svnadmin create repo
> $ svn mkdir -mm --parents file://`pwd`/repo/A/B
> $ svn mv wc/A wc/X # interrupt at svn_io_file_rename
> $ sqlite3 wc/.svn/wc.db "select op_depth, local_relpath, presence, revision from nodes"
> 0|A/B|normal|1
> 0|A|normal|1
> 0||normal|1
> 1|X|normal|1
> 1|X/B|normal|1
>
> Running "svn revert -R wc/X" removes the X rows as expected.
Stepping through the code, I see that it fails in io.c, line 3374
apr_file_rename(from_path_apr, to_path_apr, pool);
But it seems it works now as expected. Had updated my working copy of
SVN but forgot to do a rebuild so I had a version that's about a week
old. Now that I did a rebuild, it works and a revert actually removes
the missing folder properly.
But I can't see anything in the changelog that would explain that it
works now?
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
Re: hosed working copy after interrupted rename
Posted by Philip Martin <ph...@wandisco.com>.
Stefan Küng <to...@gmail.com> writes:
> Stumbled upon the following problem with 1.7.1+ (latest 1.7.x branch):
>
> $ svn co http://tvserver/svn/Test/trunk/TortoiseSVN/Languages renametest
> $ cd renametest
> - now open another console window in subfolder 'de' (so that the
> folder is locked and can't be removed)
> $ svn mv de de2
> A de2
> svn: E720032: Can't move '.....de' to '....de2': The process cannot
> access the file because it is being used by another process.
Where does the code fail? Is it inside the svn_io_file_rename call in
svn_wc_move?
> After that, the folder 'de2' is marked as 'missing' when doing an 'svn
> st'. Reverting or updating 'restores' that folder, marked as
> normal'. But since there was never a commit with that name, the folder
> de2' is now marked in the wc as if it is in the repository.
Why does revert restore de2? It's a copy, revert should revove it. If
I try to reproduce by interrupting a mv on Linux:
$ svnadmin create repo
$ svn mkdir -mm --parents file://`pwd`/repo/A/B
$ svn mv wc/A wc/X # interrupt at svn_io_file_rename
$ sqlite3 wc/.svn/wc.db "select op_depth, local_relpath, presence, revision from nodes"
0|A/B|normal|1
0|A|normal|1
0||normal|1
1|X|normal|1
1|X/B|normal|1
Running "svn revert -R wc/X" removes the X rows as expected.
--
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com