Re: Dealing with repository corruption in one cvs file

Max Bowsher <[email protected]>
Newsgroups gmane.comp.version-control.subversion.cvs2svn.user
Message-ID <[email protected]>
Matt Ackeret wrote:
> Hi, I'm trying to convert a repository to subversion, and have one corrupted
> file from the CVS repository.
> 
> Before a few days ago, I knew *nothing* about rcs file format, and I still
> don't know much about them.
> 
> The original error I ran into was this (just removing the exact filename,
> even though I realize it doesn't really give away any info):
> 
> ERROR: './MYFILENAME.c,v' has no deltatext section
> for revision 1.8
> ERROR: './MYFILENAME.c,v' has no deltatext section
> for revision 1.7
> ERROR: './MYFILENAME.c,v' has no deltatext section
> for revision 1.6
> ERROR: './MYFILENAME.c,v' has no deltatext section
> for revision 1.5
> ERROR: './MYFILENAME.c,v' has no deltatext section
> for revision 1.4
> ERROR: './MYFILENAME.c,v' has no deltatext section
> for revision 1.3
> ERROR: './MYFILENAME.c,v' has no deltatext section
> for revision 1.2
> ERROR: './MYFILENAME.c,v' has no deltatext section
> for revision 1.1
> 
> My *original* attempt at fixing it was adding this to the end of the file
> ---
> 1.8
> log
> @DUMMY FAKE ENTRY
> @
> text
> @#error DUMMY FAKE ENTRY DUE TO REPOSITORY CORRUPTION
> @
> ---
> and so on through 1.1
> 
> That satisfied rlog, IIRC, but then gave another error during checkout.
> 
> With some help from someone else, the latest attempt was to bsaically remove
> the #error part and the additions were like this
> 1.8
> log
> @DUMMY FAKE ENTRY
> @
> text
> @@
> 
> He was able to check out manually, but for me, the co still failed:
> 
> ERROR: The command 'co -q -x,v -p1.1 ./MYFILENAME.c,v' failed with exit status=1
> and the following output:
> co: ./MYFILENAME.c,v:7948: edit script ends prematurely
> co aborted

Not very useful unless you tell us what was on and around that line number.

> So I guess I'm asking for some more ideas about how to add fake entries to 
> the end so I can do a full conversion (with *known* corruption for the very
> early versions of that file).
> 
> Or else, how can I ignore just those versions of the file in the upgrade,
> but keep all of the rest of the tags/branches?

RCS 'text' sections work like this:

The text section for the head revision (as indicated on the first line)
is the literal file contents.

The text section for every other revision on trunk is a script listing
additions and deletions of lines, to turn the successor revision back
into that revision - i.e. the script stored under 1.8 turns the full
text of revision 1.9 back into 1.8.

The text section for every revision on a branch is a script too, but
these are applied to the ancestor revision - i.e. the script stored
under 1.1.2.1 is applied to 1.1 to generate 1.1.2.1.

Max.

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1670&dsMessageId=2423135

To unsubscribe from this discussion, e-mail: [[email protected]].
signature.asc (application/pgp-signature, 197 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAksJzXUACgkQfFNSmcDyxYApowCgyXSeiUeRaehJfL5Qy412oplx
WAoAoJ9FifRgg1F48guAEFKk3xNBxHpe
=J0mr
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.