[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CVS bug - invalid change text

From: Larry Jones
Subject: Re: CVS bug - invalid change text
Date: Fri, 8 Jun 2001 12:12:22 -0400 (EDT)

address@hidden writes:
> "cvs [server aborted]: invalid change text /xxx/xxx/messagehandlers.c,v"

This indicates that your repository has been corrupted.

> - what is causing this problem ?

The most often reported cause of this by far is bugs in network
filesystem code -- if your repository is network mounted, I strongly
advise that you move either the repository or your CVS server so that
the repository is locally mounted instead.  If not, then either someone
or something (other than CVS) has been messing about with your
repository, or you have a hardware problem.  The exact form of the
damage may provide clues as to which is the case.

> - is it possible to force CVS to continue the checkout without deleteing
> the file "messagehandlers.c,v" in the cvs repository ?

Not that I know of.

> - is it possible to repair this file "messagehandlers.c,v" in the
> repository ?

Maybe.  You'll need to be (or become) intimately familiar with the RCS
file format and either have a way to reconstruct the damaged
revisions(s) or be willing to delete them along with all their dependent
revisions.  Essentially, you'll have to edit the RCS files by hand
(although RCS and/or CVS can also help).

> - is it possible to avoid such problems in the future ?

Yes: fix whatever's wrong.

> - does CVS check the integrity of the repository before and/or after a
> commit ?

Unfortunately, it does not (and neither does RCS); both assume that the
filesystem is reliable.  In the most common case of corruption (network
filesystem errors), such a check would probably not help since rereading
the file would most likely get the data from the local system's cache
and thus not notice the corruption that occurred between the local
system and the server.

> - if not is there a possibility to force CVS to do such a check ?

Not per se, but see below.

> This problem raises the question whether CVS can be used at all for
> serious version management.

A fair question.  I'd say it's as good as anything else.

> It seems CVS is able to corrupt older versions of a file by commits carried
> out at some later point in time.
> (that is what has actually happened).

No.  To my knowledge, there has *never* been a report of CVS itself
corrupting a repository file; the damage has always been attributable to
some external agent.

> It seems that this could happen unnoticed (there were no warnings that
> the file  "messagehandlers.c,v" became corrupt).

Yes, that's unfortunately true.

> It also seems that the problem is restricted to parts of the files only
> (since the current version can be checked out successfully).

That's a characteristic of the RCS file format.

> This also means that it is impossible for a user to determine by simple
> means
> whether the data in the CVS repository are still valid or became invalid in
> the meantime.

Donald Sharp has posted a perl script that will analyze a repository and
report any damaged files.  See:

-Larry Jones

Girls are so weird. -- Calvin

reply via email to

[Prev in Thread] Current Thread [Next in Thread]