You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Alexey Neyman <st...@att.net> on 2014/10/10 00:48:21 UTC
svn: E200030: sqlite: Expected database row missing
Hi,
Was using svn 1.8.10, CentOS 6.5, Subversion RPM installed from
opensource.wandisco.com.
During 'svn switch', the following error pops up:
svn: E200030: sqlite: Expected database row missing
What I was doing:
- checked out a project from /trunk
- did some local changes
- copied WC to a branch
- attempted to switch to the branch
If I repeat the 'svn switch ^/branches/mybranch' command, the first time
switch proceeded a bit further - but later yields the same error.
Subsequent runs yield this error immediately.
I cannot reproduce this by repeating the 'checkout-modify-copy-switch'
sequence, but I am keeping this working copy in case some information
can be gleaned from it.
Any ideas what may be wrong?
Regards,
Alexey.
Re: svn: E200030: sqlite: Expected database row missing
Posted by Alexey Neyman <st...@att.net>.
Any ideas on what may have caused this error, and what info can be
obtained from the WC?
On 10/09/2014 03:48 PM, Alexey Neyman wrote:
> Was using svn 1.8.10, CentOS 6.5, Subversion RPM installed from
> opensource.wandisco.com.
>
> During 'svn switch', the following error pops up:
>
> svn: E200030: sqlite: Expected database row missing
>
> What I was doing:
>
> - checked out a project from /trunk
> - did some local changes
> - copied WC to a branch
> - attempted to switch to the branch
>
> If I repeat the 'svn switch ^/branches/mybranch' command, the first
> time switch proceeded a bit further - but later yields the same error.
> Subsequent runs yield this error immediately.
> I cannot reproduce this by repeating the 'checkout-modify-copy-switch'
> sequence, but I am keeping this working copy in case some information
> can be gleaned from it.
>
> Any ideas what may be wrong?
Regards,
Alexey.
Re: svn: E200030: sqlite: Expected database row missing
Posted by Alexey Neyman <st...@att.net>.
On 10/15/2014 01:23 AM, Philip Martin wrote:
> Checked the issue using SVN trunk. It does not abort like 1.8.10, but
> it does report tree conflicts for d1/f1 and d1. I would say such
> conflicts should be resolved automatically, given that the working
> copy contains exactly the same changes as in the incoming
> edit. Figuring that out may not be trivial, though, as the copied
> directory may be arbitrarily deep.
> The difficulty here is that Subversion does not know that the repository
> tree was created as a commit from this working copy. Resolving the
> tree-conflicts automatically probably needs more complete move-tracking.
>
I think this kind of conflicts happens with plain deletions as well. I
don't have a trunk Subversion available right now to check though.
I think theoretically Subversion could work its way up: first it could
note that d1/f1 is removed in both local tree and the repository. Since
it is the same change, it could then resolve that conflict. Then, seeing
no other changes in d1 in the local tree - it could conclude that the
deletion of the d1 directory is again the same operation - and resolve
that conflict, too. Lather, rinse, repeat for any higher-level directories.
Regards,
Alexey.
Re: svn: E200030: sqlite: Expected database row missing
Posted by Philip Martin <ph...@wandisco.com>.
Alexey Neyman <st...@att.net> writes:
> Actually, looking at the commit I came up with a reproduction scenario:
Thanks for that! I've created an issue:
http://subversion.tigris.org/issues/show_bug.cgi?id=4524
> Checked the issue using SVN trunk. It does not abort like 1.8.10, but
> it does report tree conflicts for d1/f1 and d1. I would say such
> conflicts should be resolved automatically, given that the working
> copy contains exactly the same changes as in the incoming
> edit. Figuring that out may not be trivial, though, as the copied
> directory may be arbitrarily deep.
The difficulty here is that Subversion does not know that the repository
tree was created as a commit from this working copy. Resolving the
tree-conflicts automatically probably needs more complete move-tracking.
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Re: svn: E200030: sqlite: Expected database row missing
Posted by Alexey Neyman <st...@att.net>.
On 10/14/2014 05:03 AM, Philip Martin wrote:
> Alexey Neyman <st...@att.net> writes:
>
>> On 10/13/2014 04:08 PM, Andreas Stieger wrote:
>>> Hello,
>>>
>>> On 09/10/14 23:48, Alexey Neyman wrote:
>>>> What I was doing:
>>>>
>>>> - checked out a project from /trunk
>>>> - did some local changes
>>>> - copied WC to a branch
>>>> - attempted to switch to the branch
>>> What exactly does "copied WC to a branch" mean in terms of svn or file
>>> system operations?
>> It means exactly that, copying from a WC to a new directory in the repository:
>>
>> $ svn cp . ^/engr/aneyman/mybranch
> That's a commit. Did it succeed? If so then the commit should contain
> a lot of information about the state of the working copy. What does the
> commit look like? What does 'svn log -v' show for the commit? Adds,
> modifications, copies, deletes, property changes, etc.?
Yes, it is a commit and it has succeeded. If I check out a separate
working copy from that new path, it is fine and contains all the
modifications from the working copy thus checked in.
Actually, looking at the commit I came up with a reproduction scenario:
[[[
#!/bin/bash
cd /tmp
svnadmin create repo
svn co file://`pwd`/repo wc
svn mkdir wc/trunk wc/trunk/d1 wc/trunk/d2
echo hi > wc/trunk/d1/f1
svn add wc/trunk/d1/f1
svn ci -mm wc
rm -rf wc
svn co file://`pwd`/repo/trunk wc
svn mv wc/d1/f1 wc/d2
svn rm wc/d1
svn cp -mm wc file://`pwd`/repo/newbranch
svn switch file://`pwd`/repo/newbranch wc
]]]
Running this script under SVN 1.8.10 gives the same "missing row" error.
So, the problem operation is "copy a file from a directory, then delete
that directory".
Checked the issue using SVN trunk. It does not abort like 1.8.10, but it
does report tree conflicts for d1/f1 and d1. I would say such conflicts
should be resolved automatically, given that the working copy contains
exactly the same changes as in the incoming edit. Figuring that out may
not be trivial, though, as the copied directory may be arbitrarily deep.
Regards,
Alexey.
Re: svn: E200030: sqlite: Expected database row missing
Posted by Philip Martin <ph...@wandisco.com>.
Alexey Neyman <st...@att.net> writes:
> On 10/13/2014 04:08 PM, Andreas Stieger wrote:
>> Hello,
>>
>> On 09/10/14 23:48, Alexey Neyman wrote:
>>> What I was doing:
>>>
>>> - checked out a project from /trunk
>>> - did some local changes
>>> - copied WC to a branch
>>> - attempted to switch to the branch
>> What exactly does "copied WC to a branch" mean in terms of svn or file
>> system operations?
> It means exactly that, copying from a WC to a new directory in the repository:
>
> $ svn cp . ^/engr/aneyman/mybranch
That's a commit. Did it succeed? If so then the commit should contain
a lot of information about the state of the working copy. What does the
commit look like? What does 'svn log -v' show for the commit? Adds,
modifications, copies, deletes, property changes, etc.?
The tables in the SQLite database .svn/wc.db have some incorrect content
but it is hard to guess exactly what is wrong. The working copy is
complicated and you have provided little information. If there was no
corruption what sort of local changes do you expect? Adds, deletes,
property changes, etc.? Are there file or directory externals? Do they
have changes?
Are you able to identify which paths in the working copy trigger the
problem? Try running "svn st path", or "svn info path", for various
paths in the working copy, and see which succeed/fail.
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Re: svn: E200030: sqlite: Expected database row missing
Posted by Alexey Neyman <st...@att.net>.
On 10/13/2014 04:08 PM, Andreas Stieger wrote:
> Hello,
>
> On 09/10/14 23:48, Alexey Neyman wrote:
>> What I was doing:
>>
>> - checked out a project from /trunk
>> - did some local changes
>> - copied WC to a branch
>> - attempted to switch to the branch
> What exactly does "copied WC to a branch" mean in terms of svn or file
> system operations?
It means exactly that, copying from a WC to a new directory in the
repository:
$ svn cp . ^/engr/aneyman/mybranch
Regards,
Alexey.
Re: svn: E200030: sqlite: Expected database row missing
Posted by Andreas Stieger <an...@gmx.de>.
Hello,
On 09/10/14 23:48, Alexey Neyman wrote:
> What I was doing:
>
> - checked out a project from /trunk
> - did some local changes
> - copied WC to a branch
> - attempted to switch to the branch
What exactly does "copied WC to a branch" mean in terms of svn or file
system operations?
Andreas