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 2010/10/18 16:50:43 UTC
update corrupts wc
Hi,
Using a build from r1023755 (about 3 hours ago), here's how I can
corrupt the working copy beyond repair (at least I don't know how to
repair it):
svnadmin create repo
svn co file:///d:/repo wc
cd wc
mkdir test
mkdir test\test
mkdir test\test\test
svn add test
svn ci . -m "adding folders"
svn rm test\test\test
svn ci . -m "removing folder"
svn rm test\test
svn ci . -m "removing folder"
now here, I get an "out of date" error (svn: Directory '/test/test' is
out of date). Not sure why this would give such an error, but updating
isn't a big deal so I try this:
svn up .
which corrupts the repository:
C test\test
...libsvn_subr\sqlite.c:308: (apr_err=235000)
svn: In file '...libsvn_wc\workqueue.c' line 506: assertion failed
(have_base)
After that, the working copy is corrupted. No command works, not even
cleanup or status.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
Re: update corrupts wc
Posted by Philip Martin <ph...@wandisco.com>.
Philip Martin <ph...@wandisco.com> writes:
> The first commit leaves A/B,not-present,op_depth=0 and that's correct.
> The second delete converts that to op_depth=2. That's wrong (I
> think). The A/B,not-present,op_depth=0 node should continue to exist,
> but perhaps we need an op_depth=2 node as well?
I've added an XFAIL regression test for this.
We have a related problem with excluded nodes:
svn up --set-depth exclude wc/A/B # A/B op_depth=0
svn rm wc/A # A/B op_depth=2
svn revert wc/A # A/B op_depth=2
I think delete is supposed to add a working node for every child with
a base_node, not convert base_nodes into working nodes.
--
Philip
Re: update corrupts wc
Posted by Philip Martin <ph...@wandisco.com>.
Stefan Küng <to...@gmail.com> writes:
> svnadmin create repo
> svn co file:///d:/repo wc
> cd wc
> mkdir test
> mkdir test\test
> mkdir test\test\test
> svn add test
> svn ci . -m "adding folders"
> svn rm test\test\test
> svn ci . -m "removing folder"
> svn rm test\test
> svn ci . -m "removing folder"
Only two levels of directories are required:
svnadmin create repo
svn mkdir --parents -mm file://`pwd`/repo/A/B
svn co file://`pwd`/repo wc
svn rm wc/A/B
svn ci -mm wc
svn rm wc/A
The first commit leaves A/B,not-present,op_depth=0 and that's correct.
The second delete converts that to op_depth=2. That's wrong (I
think). The A/B,not-present,op_depth=0 node should continue to exist,
but perhaps we need an op_depth=2 node as well?
--
Philip