Ah! I fixed it.
Ok, the issue had nothing to do with any revision, what happened was the
power outage interrupted writing to the revprops for both the revision
svnsync was writing, but also revprop 0.
Both these files contained a load of 0s (as in \0).
Fixing my svnsync to continue was as easy as initialising a new
destination with the original repo (so I have a revprop 0 with most of
the correct values), then copying revprop 0 from there to my broken
destination. Edit the 2 revprops svn:sync-currently-copying and
svn:sync-last-merged-rev to the last-but-one revision (note: also edit
the V <length> value before the property, and don't forget to delete the
last corrupt revprop and rev files)
I did this, and and off it went happily syncing from where it left off.
I wonder if revprops aren't as securely transactional as the rest of the
system, or that svnadmin verify ignores them.
I think svnadmin should check for valid revprops, and report on any that
are not valid. Another idea that would make life easier (as I worry that
my main repo might suffer the same fate one day) would be to provide an
interface to "backward-sync" a particular revision from my mirror back
to the main repo. If these 2 were available, it would make repairing a
corrupted repository very easy - run svnadmin verify to find the bad
revision/revprop, then copy that revision from a backup to the repo to
repair it (I know I could copy the files manually, but a lot of people
would prefer a tool to do it for them)
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-04-24 16:10:43 CEST