[cvsnt] CVS Server Side Reporting Tools?

Arthur Barrett arthur.barrett at march-hare.com
Sun Nov 9 23:28:44 GMT 2008


> I looked in the structure of my CVSNT Audit database (MSSQL) and these
> columns are actually integer *numbers*:
> Sessionlog.ID
> *.ID, *.SessionID

All the ID columns are automatic/sequence's that generate the primary
key for the table.  The *.SessionID columns all are foreign keys to the
primary key of SessionLog.  The SessionID itself is only stored once in
the SessionLog table.

> >
> >evs switched to guids for the session id.
> Then needs a different Audit database structure.

Yes - but it's out of scope for this discussion anyway.

> > Another question:
> > Is the commitid the same as the value stored into the Audit 
> > database sessionlog.sessionid column???
> Yes.

Well - for commits yes - but every row (and every server session) has a
session id, but only on commits are they commit id's too...

The code to make the sessionid is in cvsnt/src/main.cpp:

static void make_session_id()

For the purposes of migration if you used process id zero then you'd
always get a unique session id.

Just looking at that code it's actually a little dangerous since the
size of the getpid() is not (technically) limited in any way and yet the
maximum size of a session id is 64 characters.

Finally - CVSNT audit trigger was introduced after the commit id was
already available in CVSNT, so if any 'commit' does not have a commit id
then you can be sure that it is not already in the audit database.



More information about the cvsnt mailing list