CVSNT Release Notes

For opensource support please contact the cvsnt mailing list:
http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt

Commercial support and training is available from March Hare Software:
http://www.march-hare.com/cvspro

Important changes between stable release 2.5.02.2064 and 2.5.03.2151

·	Howl is no longer used by default for Zeroconf publication.  The Multicast DNS responder can be selected in the control panel (Win32) or in the cvsnt configuratoin file.  Currently supported: Internal 'mini' mdns (default), Howl, Apple.
·	Zeroconf should work on all platforms.
·	Lockserver will no longer allow a writelock if a transaction is currently active, even if all locks are released on a file.  Removes a small window of error where two people could request the same version.
·	cvsnt control panel is now loaded through a proxy stub.
·	When talking to server versions <2.0.58, cvsnt will no longer advertise it supports Kerberos.  A bug in those versions makes the server disable protocol negotiation if kerberos is found.
·	Unix builds will run as UTF8 if possible.  The Win32 UTF8 server is no longer experimental.  Win32 client now has a --utf8 switch, which also forces the client into UTF8 mode.
·	As a result of the above, multilingual filenames (inc. japanese, hebrew) should now behave correctly.
·	Using a root string starting ‘::’ makes an anonymous connection to a server, provided the server is a supported cvsnt server with anonymous connections enabled. eg. cvs –d ::cvs.cvsnt.org ls
·	‘cvs ls’ now works against non-cvsnt servers by emulating the behaviour of the ls command on the client side.
·	Individual repositories may be taken offline using the control panel (on Windows) or by modifying the configuration file (on Unix).

Important changes between stable release 2.5.01.1976 and 2.5.02.2064

·	cvs init will now attempt to register with the local server, and will warn you if that is not possible.
·	Remote init is possible, but only if enabled by the system administrator.
·	cvsnt servers now have a remote discovery protocol, which can be used to advertise repositories and also define the 'anonymous' username.
·	cvsnt clients can discover servers on the local network using multicast dns (zeroconf).
·	Email generation trigger can generate commit/tag/notify emails, with limited customisation available.
·	Server operations can be logged using the audit trigger.  Interfaces to several SQL backends are available.
·	Control panel now allows selection of all protocols/triggers installed on the server, with individual configuration for each.
·	If encryption is set to 'force encryption', protocols which cannot support encryption are automatically disabled.
·	Triggers no longer have to be listed in CVSROOT/triggers if they are a library with the name *_trigger
·	Extnt has been extended and now has more options for integration with frontends that support it.
·	New RCS keyword $Branch$ set to branch name of a revision.
·	Client side sserver certificates, with the option to require these.
·	Support for Schannel over SSPI.
·	The Redhat RPM builds are now split into multiple RPM files to minimise dependencies.
·	Support for -I@ in import, to ignore client-side cvswrappers when importing.
Important changes between stable release 2.5.01.1969 and 2.5.01.1976

·	Support for multiple bugid (-b) options in edit and commit.
·	Fix problem with reserved checkouts becoming read/write in build 1969.
Important changes between stable release 2.5.01.1910 and 2.5.01.1969

·	(Win32) Warning at end of MSI install fixed.
·	Add support for default-deny ACLs (AclMode, in CVSROOT/config)
·	Add -r option for adding a file to a different branch than the current default
·	Add -b to mark a file with a bug identifier as it is added
·	Edit -C to check if a file is unmodified before allowing edit
·	PCRE (Perl Compatible Regular Expressions) now used internally.  This affects the commit support files.  If you have any complex regular expressions you will need to verify they still behave as expected.
·	Default to running only first match in commit support files (2.0.58 behaviour).  
·	Matching lines in commit support files prefixed with '+' will be run in addition to the first match found.
·	Support for putty sessions in plink.
·	Fix for plink hanging with certain servers.

Important changes between stable release 2.0.58d and 2.5.01.1910

·	(Win32) MSI installer.  It may be necessary to do uninstall the old version before installing this version.  The old innosetup installer is still being maintained and is available at http://web.telia.com/~u86216177/cvsntinstaller.html
·	(Win32) Optional support for case sensitive servers.  A device driver is required for this which is available for CVSNT commercial support customers and to other by arrangement with March-Hare Software.
·	(Win32) Server is now a Unicode application.
·	(Win32) Experimental UTF8 server mode.  This allows the greatest compatibility for multilingual projects.
·	(OSX) Resource fork support.
·	(OSX) Installer now installs server and lockserver correctly.
·	(OSX) OSX is now a primary supported platform.
·	(Unix) PAM configuration file is now cvsnt not cvs (on most systems rename /etc/pam.d/cvs to /etc/pam.d/cvsnt)
·	Client now handles filename character set conversion by default when talking to CVSNT servers.
·	Threaded lockserver for better scalability.
·	Advertisement by Rendezvous/Zeroconf when supported by the OS.
·	Server plugin API.  Applications can now tightly integrate with the server execution.
·	Commit helper scripts now handled as a plugin.  The syntax has also been extended.  As a side effect pathnames must now use Unix-style forward slashes ‘/’ not backslashes – some changes to existing installations may be required on Win32 systems.  In particular library and COM references are only supported in the triggers files.
·	ACL options ‘all’ and ‘none’.
·	Cvswrappers supports ‘!’ to override default binary expansions.  List of known binary file types expanded.
·	New expansion modes –kD for checking out files in DOS format, and –kM for checking out files in Mac format.
·	New command options:  cvs passwd –p, cvs release –y.
·	New commands: rchacl, rlsacl, rchown.
Important changes between stable release 2.0.58b and 2.0.58d

·	If a rename fails because AV has it open, keep retrying for up to 10 seconds.
Important changes between stable release 2.0.58 and 2.0.58b

·	This version is validated against the eclipse 3.0.1 testsuite, and should work with no problems with that version.
·	The old ‘Fake Unix CVS’ option has been replaced by two sets of compatibility switches – for legacy (non-CVSNT) clients, and CVSNT compatible clients.  For full eclipse compatibility enable all 3 options in the non-CVSNT section (the installer will do this for you if you previously had ‘Fake Unix CVS’ enabled).
Important changes between stable release 2.0.51d and 2.0.58

·	The access control system has been completely rewritten, and supports many more options.  See the manual for more details.
·	Rename functionality is now stable for files (rename directory is unsupported in this release).  We strongly recommend using 2.0.58 client as well as server if you are using this functionality.  If you are using any 2.0.51 clients these may exhibit problems with "update" on renamed files – in most cases this is solvable by repeating the update.
·	Edit functionality is expanded and now supports exclusive edits plus the ability to specify bug numbers and comments.  New parameters are available to notification scripts to utilise these options.
·	Commits may be restricted to an individual bug.
·	It is now possible to refer to entire commits as a single unit by using the new @< syntax and commit ids.  See the manual for more details.
·	Expansion attributes are now fully versioned.  Attributes may be added and removed from existing files using new –k+ and –k- syntax.
·	All locales supported by the local iconv library may be used as target codepages for the –k{} syntax.  The win32 version ships with a recent copy of GNU iconv.
·	Filenames and comments can be automatically localised by the client allowing the use of umlauts and other characters and filenames, using the new –o global option.
·	New scripting hooks precommand, premodule, postmodule, postcommand.
·	Win32 server can be forced to run as an unprivileged user (duplicates functionality available in Unix builds since 2.0.51).
·	Hooks for future case sensitivity module for Win32.
·	Alias tags to create aliases for branch names.
·	Unix builds can build as fully static version for systems that don’t support shared libraries.
·	Support for global watcher who receives notification of all edit/unedit/commit events.

Important changes between stable release 2.0.51 and 2.0.51d

·	Access control now uses cygwin ntea compatible settings by default rather than ntsec. If you are using cygwin and wish to continue using ntsec with CVSNT you will need to set this explicitly in your CYGWIN environment variable. 

Important changes between stable release 2.0.41a and 2.0.51

·	Repository prefixes are replaced by repository aliases (All your repositories should be upgraded automatically on installation to the new format). Aliases are much more versatile and allow you to house repositories on multiple drives without having to lose the advantages that a prefix gave you. 
·	File locking granularity is now exclusively per-file rather than per-directory. This helps user concurrency a many users may now be committing to the same directory simultaneously without holding each other up. 
·	Local mode operations now start a local lockserver as a system tray app 
·	External CVSNT protocol wrapper for 3rd party clients (extnt). 
·	Pre-release of rename support (to be rolled out in the next version). This is disabled by default but users are encouraged to test it on non-critical systems (note: this changes the repository so please don't test on live/critical repositories yet). 
·	Files or filetypes may be marked for automatic reserved edit (-kc option). 

Important changes between stable release 2.0.41 and 2.0.41a

·	Special release to enable access to new sourceforge.net servers. 

Important changes between stable release 2.0.34 and 2.0.41

·	An option is added to pretend to be a Unix CVS server. When used with the repository prefix this improves compatibility with WSAD and Eclipse. 
·	Extra unicode encodings are available. All combinations of UCS2/UTF16 with/without BOM are now catered for. See the mailing list archives or the documentation for the -k{encoding} options. 
·	Security fix update 
·	modules2 support added for more flexible modules, and paving the way for true rename in future releases. This is a test feature currently for those who are interested in the future development. 

Important changes between stable release 2.0.26 and 2.0.34

·	LSA/Setuid layer is much more bulletproof and shouldn't cause problems any more 
·	Lockserver is much more scalable and won't use significant CPU under normal load 
·	Some of the more complex mergpoint cases are now catered for 

Important changes between stable release 2.0.14 and 2.0.26

·	ntserver protocol now no longer supported. The long depreciated ntserver protocol is now gone. sspi is a drop-in replacement with more features. 
·	Lockserver now default. All operations will now by default use the lockserver. There is no need to setup anything special to use this. 
·	Connection over network shares needs special setup. Connection over network shares has long been depreciated. The use of lockserver as default means that this unsupported mode will no longer work without special handling. It is recommended to switch to a proper client/server model. If this is impossible then lockserver should be run on a machine and the correct LockServer=<machine> line put in the CVSROOT/config. 
·	No support will be given to configurations based on remote network shares. 
·	It is possible to disable lockserver at this time but it is strongly discouraged and this option may not be supported in future. 
·	NT4/Win95 clients should use installation script. On NT4 and Win95 client installation can no longer be correctly achieved by simply copying the CVSNT files. The installer also installs the correct secur32.dll for the platform in the windows system directory. To avoid error it is recommended to perform a proper client installation. 
·	pserver impersonation is done properly. Instaead of the NTCreateToken hack (which doesn't work on Win2003 or XP SP2) pserver impersonation is done using a system level LSA helper. This works with the system and it properly audited etc. however as a new (but necessary) upgrade you may experience problems. The general advice is if you start to have problems with lsass.exe crashing, then uninstall the LSA helper DLL and forget about it. If you can isolate the program that is interfering, then post this information to the cvsnt list so that it can be investigated. A current list of problematic software is maintained in the Faq