CVSNT is a version control system compatible with and originally based on Concurrent Versions System (CVS), but whereas that was popular in the open-source world, CVSNT included features designed for developers working on commercial software including support for Windows, Active Directory authentication, reserved branches/locking, per-file access control lists and Unicode filenames. Also included in CVSNT were various RCS tools updated to work with more recent compilers and compatible with CVSNT.
CVSNT was initially developed by users unhappy with the limitations of CVS 1.10.8, addressing limitations related to running CVS server on Windows and handling filenames for case-insensitive platforms. March Hare Software began sponsorship of the project in July 2004 to guarantee the project's future and to employ the original project manager on CVSNT development and commercial support.
CVSNT was commercially popular, with a number of commercial IDEs directly including support for it including Oracle JDeveloper, IBM Rational Application Developer, and IBM WebSphere Business Modeler. The CVSNT variation of RCS tools were also widely used, including by Apple, Inc. CVSNT was so ubiquitous in commercial programming that it was often referred to simply as CVS, even though the open-source CVS developers had publicly stated that CVSNT was significantly different and should be kept as a separate project.
Several books were written about CVSNT including CVSNT (CVS for NT) and All About CVS.
Features
CVSNT keeps track of the version history of a project (or set of files).
CVSNT is based on the same client–server architecture as the Concurrent Versions System: a server stores the current version(s) of the project and its history, and clients connect to the server in order to check-out a complete copy of the project, work on this copy and then later check-in their changes. A server may be a caching or proxy server (a read only server that passes on write requests to another server) or a read and write (normal) server.
Typically, client and server connect over a WAN or Internet, but client and server may both run on the same LAN or even the same machine. The server software runs equally well on Unix and Windows. It is compatible with CVS clients and supports a large number of configuration management methodologies including the CVS compatible unreserved method and the VSS-like reserved method.
The modular nature of CVSNT allows server administrators to dynamically enable and disable protocols as well as load additional functions via triggers such as Audit, Defect Tracking Integration, Automatic Checkout (for webservers) and more.
CVSNT Server features include:
Access control for securing projects and branches. Detailed audit and metrics recorded in an SQL database. Authentication with Active Directory. Tracking everything about the change - including whether it was merged from somewhere, belongs to a problem report or was part of a change set. A control panel to manage email notification of changes, defect tracking integration, and more. Integrated repository synchronisation (for fail-over servers). Change set support (group changes by defect number). Supports Unicode UTF-8/UCS-2 files and multi-lingual filenames. When operating in UTF-8 (Unicode) mode it can automatically translate filename encoding for any client. Plug-ins for email notification. Helps make merging branches easier with its "Mergepoint" feature. Native servers available for Mac OS X, Windows, Linux, Solaris, HP-UX. Supports reserved and unreserved versioning methodologies. CVSAPI for integration into third-party products. Script, COM and 3GL interface for triggers and integration into 3rd party tools (such as defect tracking)
History and status
Users unhappy with the limitations of CVS 1.10.8 began the development of CVSNT. The original limitations addressed were related to running CVS server on Windows and handling filenames for case-insensitive platforms.
The first version was released in 1998, and stable feature releases have been released roughly every three to four months since. Linux and Unix support was re-added to CVSNT in early 2002.