I recently had a sync or other failure of svnsync which left me with a bum repository. Every time we tried to do svnsync, it reported "svnsync: malformed file." I got the same error with all svnadmin access.
I found this link: http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1892873&orderBy=createDate&orderType=desc and provided some good clues. I noticed that my file in db\revprops\0 had junk in it instead of normal stuff. It should have looked like this:
K 8
svn:date
V 27
2010-07-21T02:55:12.203323Z
K 17
svn:sync-from-url
V 45
https://portal.secureci.com/svn/secureci
K 18
svn:sync-from-uuid
V 36
b443ad56-1e36-4a4f-97ef-7144cc153033
K 24
svn:sync-last-merged-rev
V 1
0
END
What I did to fix it:
- cd c:/temp
- svnadmin create svn-sync2
- Copy hooks/pre-revprop-change.bat file from broken repository to new one
- svnsync --username svnsync initialize file:///c:/temp/svn-sync2 https://portal.secureci.com/svn/securci
- Copy the db/revprops/0/0 file from the new repos to the broken one
- Edit the 0 file and fix the 'sync-last-merged-rev' entry to have the correct number.
- Look in db/revprops/2 (or highest number) and locate the most recent numbered file (e.g., 2437)
- Change '0' value below "V 1" to be "2437"
- Change the V1 line to be "V 4" for 4 character length
- Run 'svnadmin verify .' in the main directory of your broken repository to make sure that it has everything intact. (This may take a little while.)
- Run 'svnsync --username svnsync synchronize file:///c:/SecureCIdata/svn/repos/secureci' and make sure synchronization goes smoothly
No comments:
Post a Comment