On Mon, Oct 20, 2014 at 06:41:00PM +0400, Lev Serebryakov wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > > I'm trying to recover SVN repository (which is mirror of other repo) > after (physical) server crash in process of "svnsync". > > svnadmin verify gives me: > > * Verifying metadata at revision 269998 ... > svnadmin: E200002: Serialized hash missing terminator > # > > Please note, that 269998 is almost-round number. It is because I've > renmoved whole 270xxx range (latest one) of revisions (and their > properties) from repository, as them was synced in moment of crash. So, > all 269xxx revisions are OLD ones, which WAS NOT DAMAGED. I've checked > 269998/269999 revisions properties — they are OK. > > Is here any way to learn WHICH "Serialized hash" is damaged?! Why file > name is not included in error message?
That serialised hash is inside a revprops file. You won't be able to fix this directly unless you understand how FSFS stores data. If you really want to know, start reading here: https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_base/notes/structure and then this: https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure I would recommend you reset the mirrored repository to the last known-good revision (269997?) by moving out of the way all files belonging to newer revisions (in db/revs) and revprops (in db/revprops), running 'svnadmin recover' (this should set db/current to the number of the last known-good revision), and finally editing the svn:sync-last-merged-rev revision property with 'svn pe -r0 --revprop REPOS_URL' to write the number of the last known-good revision in there. Now you should have a working repository that is synced up to the last known-good revision and 'svnsync sync' should catch up again.