[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Discrepancies in svn mirror created with svnsync

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Tue, 12 Feb 2013 19:09:23 +0000

Daniel Shahaf <d.s_at_daniel.shahaf.name> writes:

>> The official way of doing this is to dump the repository from r0
>> to rN (using svnadmin dump) and loading this dump file into a freshly
>> created repository (svnadmin load).
>> Since you're creating an svnsync mirror you should probably run
>> 'svnsync init' before loading the dump file, and after loading adjust
>> the svn:sync-last-merged-rev revision property on r0 to say 'rN'.
>>
>
> Need to truncate rep-cache.db Stefan! (otherwise the invariant on it
> won't hold, which can cause lossy corruption)
>
> sqlite3 'delete from rep_cache if revision > N' rep-cache.db

No need to do that if dump/loading.

>> There is a shortcut if you want to avoid the dump/load cycle, but it
>> involves messing with data in the repository so please don't try this
>> at home and make backups first! Set the file 'db/current' to rN and
>> remove all files in db/revs and db/revprops between HEAD and rN.
>> Then run 'svnadmin recover', reset svn:sync-last-merged-rev to rN and
>> hope that everything still works. Better try this on a small test
>> repository first!

Truncating the rep-cache is necessary if you backdate db/current.
Running 'svnadmin recover' will do it for you if you use 1.7 but not if
you use 1.6. For 1.6 use the sqlite3 command or simply delete
db/rep-cache.db.

The other thing that can go wrong if you truncate a repository is that
you may end up with orphan exclusive locks (locks on files that don't
exist). This will prevent you adding those files in future until you
unlock the path. This is unlikely to affect an svnsync mirror since you
probably don't lock files in the mirror.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download
Received on 2013-02-12 20:10:05 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.