[cvsnt] Latest Updates

Tony Hoyle tmh at nodomain.org
Thu Jan 16 16:13:26 GMT 2003


cvsnt 1.11.1.3 build 66

There's quite a bit changed in this release.  I've tested it but those
of a nervous disposition might want to wait a day or three before
upgrading, just in case I've mucked it up again.

Because of the output changes to log and status, be careful of client
compatibility.  WinCVS and TortoiseCVS should be OK (since I use them
during development anyway).  WSAD/Eclipse can be picky about the
output they get from the server, so they're a bit of an unknown.

* Make 'watch on' behave as before.
* Some more ssh fixes.  ssh2 client works now.
* UI for commitd tracking
* Server can suggest/force compression & encryption
* Server side cvsrc for compliant clients
* postcommit trigger
* historyinfo trigger
* Track -k option per-revision
* Server state read on the fly rather than at service startup

--------------------------------------------------

Commit id tracking:

For a release or two cvsnt has been tracking commits via the rcs
files.   Each commit is given a unique ID (random string) which is
stored with the version being committed.  This release adds the means
to query these commits as if they were tags using an '@' prefix

eg:  

cvs diff -r @5dc3e26d404120f -r @7403e26d4241277

This commit IDs where available are displayed by the 'cvs status' and
'cvs log' commands.  

$ cvs log testfile
..
----------------------------
revision 1.2
date: 2003/01/15 10:20:40;  author: tmh;  state: Exp;  lines: +2 -0;
commitid: 70c3e2535f849f4
*** empty log message ***
----------------------------
..

cvs status testfile
===================================================================
File: testfile           Status: Up-to-date

   Working revision:    1.11    Wed Jan 15 10:41:19 2003
   Repository revision: 1.11    d:\repo/cvsroot/testfile,v
   Expansion option:    (default)
   Commit Identifier:   4c83e253acf59c2
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

The commit id can also be passed to the commit/log scripts using the
$COMMITID parameter.

Server compression and encryption:

The server can request that a compliant client compresses,encrypts or
authenticates its data.  It can also be set to abort if the client
fails to do this.  A compliant client will automatically obey the
server request without the need for extra comand line options.

Encryption/Authentication relies on the status of the '-x' flag passed
to the command line.  Due to this at the moment :ssh: and :ext: are
not considered to be 'encrypted' by cvs.  This will be fixed in a
later release.

These options are set in the 'advanced' tab of the control panel.

Server side cvsrc:

Compliant clients will request the server side cvsrc from the clients,
which is stored in CVSROOT/cvsrc.  Any command except the global 'cvs'
command can have its options set here.

Postcommit trigger:

This trigger fires after the locks have been removed from the
repository, and can be used to maintain a checked out copy or perform
further actions on the repository.

Historyinfo trigger:

This trigger fires each time a line is written to the history file.
Use this sparingly, as it can cause a severe performance hit to the
server.  It is recommended that the history output is filtered (using
the existing settings in the config file) before the trigger is
installed.

Track -k option per revision:

If a file changes from binary to text or vice-versa, cvsnt now stores
the state of the revision that was checked in so the history is valid
(ie. you get back what you put in).  This is probably the least tested
part of the changes but anything is an improvement on the current
situation.

Server state read on the fly rather than at service startup:

Changes to the repository list, or the compression/encryption options
are read as the user connects, which means there's no need to
stop/restart the service to make changes.

The Unix server now does this also, reading the /etc/cvsnt/PServer
file for its options.





More information about the cvsnt mailing list