subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gunnar Dalsnes <>
Subject Re: svn 1.8.0 problem "both sides of the move must be committed together"
Date Tue, 02 Jul 2013 14:48:28 GMT
On 02.07.2013 15:59, Philip Martin wrote:
> Gunnar Dalsnes <> writes:
>> When I check with svn status I get this:
>> <lots of other unrelated adds, mods and deletes>
>> A       src\Plugins\Registration\IBLPWrasse\Entities
>> A  +    src\Plugins\Registration\IBLPWrasse\Entities\BLEWrasseContainer.cs
>> D       src\VPA Framework\VPAEntities\Wrasse\BLEWrasseContainer.cs
>>          > moved to src\Plugins\Registration\BLEntities\Wrasse\BLEWrasseContainer.cs
>> This seems to confirms that I moved the file correctly.
> No, that's not correct.  There should be a "moved from" line on the
> destination to match the "moved to" line on the source.

Yes, that line is missing from svn status.
>> I tried recreating the problem by creating an empty repo, creating same folder structure
and moving, then modifying a file, but then it worked without problem (typical).
> That would have both moved-to and moved-here.
>> Here are the 4 relevant entries (I think) from NODES in wc.db, if that can help:
>> 15751,"1","src/VPA Framework/VPAEntities/Wrasse/BLEWrasseContainer.cs","0","src/VPA
Framework/VPAEntities/Wrasse","1","trunk/src/VPA Framework/VPAEntities/Wrasse/BLEWrasseContainer.cs","24486","normal",,,"file",,"infinity","$sha1$544d1e17178a9ee815a60b74995fc72aa4a5e526",,"533","1214814539781408","username","2362","1372322295733206",,,
>> 62069,"1","src/VPA Framework/VPAEntities/Wrasse/BLEWrasseContainer.cs","5","src/VPA
>> 62075,"1","src/Plugins/Registration/IBLPWrasse/Entities","5","src/Plugins/Registration/IBLPWrasse",,,,"normal",,,"dir",,"infinity",,,,"0",,,,,,
>> 62080,"1","src/Plugins/Registration/IBLPWrasse/Entities/BLEWrasseContainer.cs","6","src/Plugins/Registration/IBLPWrasse/Entities","1","trunk/src/VPA
> So NODES.moved_here is null in the row for the move destination.  What
> did you do to get that to happen?

Nothing special. I moved the files with TSVN 1.8.0 using Windows 
Explorer and TSVN context menus. Then I included the file in the 
destination solution. I'm using VisualSVN 3.5.0 btw. But even if TSVN or 
VSVN is ill behaving, they must go via svn library so I would expect 
they are not be able to corrupt wc.db, even if they wanted.

>> This repo was converted from SVN 1.7 format (not a fresh checkout), in case this
is relevant. This is on WinXP. SVN server is 1.7.3 (r1242825).
>> Update: I finally managed to commit by only selecting the deleted source file, added
destination file and added destination folder (ignoring all other changed):
>> Command: Commit
>> Adding: E:\svn\Copy of fishtalk trunk\src\Plugins\Registration\IBLPWrasse\Entities
>> Adding: E:\svn\Copy of fishtalk trunk\src\Plugins\Registration\IBLPWrasse\Entities\BLEWrasse.cs
>> Deleting: E:\svn\Copy of fishtalk trunk\src\VPA Framework\VPAEntities\Wrasse\BLEWrasse.cs
>> Sending content: E:\svn\Copy of fishtalk trunk\src\Plugins\Registration\IBLPWrasse\Entities\BLEWrasse.cs
>> Completed: At revision: 24489
>> Still, very annoying. This can't be right.
> The closest I can get to reproducing is by manually changing wc.db:
> svnadmin create repo
> svn -mm import repo/format file://`pwd`/repo/A/f
> svn co file://`pwd`/repo wc
> svn mkdir wc/B
> svn mv wc/A/f wc/B/f
> sqlite3 wc/.svn/wc.db "update nodes set moved_here = null"
> but even then the commit works.  Which targets were you committing?  The
> whole working copy or individual files?

I tried committing whole wc (mix of adds, edits and moves). I eventually 
got everything committed by splitting in 6 different commits, mostly by 
trial and error, but generally it was mods first, then adds, then deletes.

I will and see if I can reproduce the error, but it may be difficult if 
either TSVN or VSVNis involved.


View raw message