Ted Gould <ted@gould.cx> writes:
> I sent this message the user list on Friday, but I believe that may have
> been the wrong list. Quick summary, I have a repository that appears to
> have had a Delta put in incorrectly. Now the repository is unworkable.
> I'd like to be able to fix the repository, but in the case that
> subversion has lost my data, I'd like to get the repository working
> again.
Thanks for forwarding the message here...
> I seem to have a corrupt SVN repository. I have checked several backups
> and I believe that there is not a disk error, but actually a subversion
> error has occurred. Let me show you the simplest way to get this error
> in my repository:
>
> $ svnadmin dump -r 671 --incremental /home/ted/.svn_data/PhotosFS/ >
> /dev/null
> svn: Delta does not fill the target window
>
> I'm using a filesystem backend and Ubuntu Linux. The version was
> created in June, so I'm not entirely sure which version of subversion I
> was running at that time. I believe it was in the 1.1.x series. I
> found this as I now have a new hard drive, and I copied over the
> repository and I am trying to create a new working copy. The checkout
> fails when trying to restore img_5633.jpg from version 671. I don't
> have an original copy of img_5633.jpg to compare against, but I'm
> working on getting that.
>
> I believe that there are no other versions that have this error in my
> repository. Here is how I checked:
>
> $ perl -e "for (\$i = 672; \$i < 725; \$i++) {system(\"svnadmin dump -r
> \$i --incremental /home/ted/.svn_data/PhotosFS/ > /dev/null\");}"
>
> I'm not entirely able to make out the file format in the FSFS repository
> files, but I think this is the metadata for the file with the error:
>
> PLAIN
> K 13
> svn:mime-type
> V 24
> application/octet-stream
> END
> ENDREP
> id: 7ry.0.r671/469843979
> type: file
> count: 0
> text: 671 125184612 3924753 3922699 9112d223ba3e88b19e846e429f0ef361
> props: 671 469843913 53 0 113136892f2137aa0116093a524ade0b
> cpath: /Unsorted/65_Alaska/03_DenaliToo/img_5633.jpg
> copyroot: 0 /
>
> I believe that one of the numbers on the 'text:' line is probably the
> diff size? Which one? I'd like to determine whether the diff is too
> small or if the number is.
Well, the fact that it says "PLAIN" at the beginning makes me think
it's not a delta at all, but a fulltext representation. I'm getting
this from reading
http://svn.collab.net/repos/svn/trunk/subversion/libsvn_fs_fs/structure
(Search for "Revision file format" to get to the relevant section.)
According to that document, the format of a "text:" line is:
text "<rev> <offset> <length> <size> <digest>" for text rep
Does any of this help you debug it further? (I'm not saying we
shouldn't look at your repository too, of course, but if you can make
some progress on it, that's a valuable parallelization -- so please
understand that I'm not saying "talk to the hand"! :-). I hope the
above link helps.
How big is your total repository?
-Karl
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Aug 23 20:35:30 2005