[cvsnt] Corrupt history file

Tony Hoyle tony.hoyle at march-hare.local
Wed Nov 22 18:06:57 GMT 2006

Chuck Kirschman wrote:
> It's very helpful, but includes things like:
> - Whenever a new file is added on a branch and committed this is not 
> recorded in the auditing database. The bug has been reported but no word 
> has come from the developer that it is fixed or will be fixed.

Someone reported such a problem a long time ago but it was unable to be 
verified and was closed.

> - "HistoryLog" is written in a way I don't yet fully understand. There 
> seems to be two records for each file committed.

History does tend to write multiple records.. however it's just an exact 
mirror of what's in the history file.

> The former is bad from the standpoint of what I need to do with history, 
> and the latter would greatly increase the disk space requirements.  My 
> history files are on the order of gigabytes per year already, and would 
> likely expand when put in a database.  Multiply that by 100 
> repositories, which you'd certainly want to put on the same database 
> server.  Although disk space is cheap, high-availability server disk 
> space is not.

Normally you would run a background task to archive old records and 
remove them from the active database.  Keeping more than a few weeks 
live is unlikely to be useful.

> And below Arthur says in response to my question "what happens if the 
> connection to the database server is broken?  Does it log locally?"
> - No audit - no changes to the repository - that is what an audit is 
> supposed to do.
> I interpret this to mean that if the database server goes down or even 
> just the network connection to it, that means CVS is completely down for 
> all of my servers.  That's a fairly crippling limitation.

An audit that can be bypassed just by someone managing to disable the 
auditing system is wide open to abuse - the purpose of audit is to 
record absolutely everything that happens on the system.  Something that 
doesn't record every access is not a true audit.. it's just a logging 
system no better than the old history system (which could be switched 
off with a command line option).

> Also, I'm not sure what the Audit Settings logging options mean.  I'm 
> pretty sure I wouldn't want checkin differences, but what does Sessions 
> mean?  What about History - isn't that what this is supposed to be? 

History doesn't record very much information on its own, so it's not so 

Sessions is every cvs session that is started, who by, from which 
machine, when, and what command they issued.

We also record every change to the system in the commit log and 
optionally the diff for every one of those changes.  These are tied to 
the sessions (and hence to an exact command by a user).

There's also a log for every file tagged, also linked to the sessions.


More information about the cvsnt mailing list