On 26.11.2013 21:38, Philip Martin wrote:
> Marc Strapetz <marc.strap...@syntevo.com> writes:
> 
>>>>> As far as I have been told, this has already been fixed and backported
>>>>> to 1.8.5. Still, for those users which already have this corruption, is
>>>>> there a way to recover their working copies with standard Subversion
>>>>> functionality? Could a Revert work? And if it currently does not, could
>>>>> the Revert be more tolerant, so it could handle such cases?
>>>> What operation is failing?  Are you getting some error?
>>
>> I can't tell whether an operation fails, because an assertion when
>> reading the wc.db is hit before. I'd expect some operations (in the GUI)
>> to fail later, because we are assuming at various places that a moved
>> file must have a move-source. Is this assumption correct?
> 
> Is that Subversion that is asserting?  It would help if you showed the
> exact error or assertion.

It's an assertion in SmartSVN which directly reads wc.db.

> If moved_to is missing Subversion usually falls back to copy and delete:

OK, so it's a valid wc.db state? I think that answers my question and I
will fix/remove SmartSVN's assertion accordingly.

> $ svnadmin create repo
> $ svn import -mm repo/format file://`pwd`/repo/A/f
> $ svn co file://`pwd`/repo wc
> $ svn wc/A wc/B
> $ svn mv wc/B/f wc/B/g
> 
> $ svn st wc
> D       wc/A
>         > moved to wc/B
> D       wc/A/f
> A  +    wc/B
>         > moved from wc/A
> D  +    wc/B/f
>         > moved to wc/B/g
> A  +    wc/B/g
>         > moved from wc/B/f
> 
> $ sqlite3 wc/.svn/wc.db "update nodes set moved_to = null"
> $ svn st wc
> D       wc/A
> D       wc/A/f
> A  +    wc/B
> D  +    wc/B/f
> A  +    wc/B/g

-Marc

Reply via email to