[cvsnt] Re: CVSNT and Subversion comparison

John Peacock jpeacock at rowman.com
Mon May 16 14:59:39 BST 2005


S Wagle wrote:
> Lately I have been debating whether to go with CVSNT or Subversion.
> 
> So I was wondering if others have used it before and have any thoughts 
> to share.

I'm planning on moving all of my corporate development work to 
Subversion (I already use it exclusively for all projects I work on 
personally).  This is in no way to reflection on the continued fine work 
that Tony has been doing, pretty much by himself.  There is no doubt in 
my mind that CVSNT is a vast improvement in almost every way over the 
base CVS code.  But the core team of developers for Subversion has 
produced a superior system which is a very compelling replacement for CVS.

The reason I'm moving away from CVS is that at some point, it becomes 
worthwhile to step back and redesign, rather than just continue to 
nibble at the edges.  Tony has performed real magic in making CVSNT into 
  better system (the mergetracking alone is a killer feature which the 
base Subversion doesn't even have yet, though SVK adds that).  But no 
matter how many features Tony can shoehorn into the existing framework, 
it is still a collection of RCS files.

CVS and CVSNT are, at their core, file-centric revision control systems. 
  Subversion is, at its core, a repository-centric system.  This 
essential difference leads to enormous performance differences.  It's a 
completely different philosophy that grew directly out of the experience 
of using CVS and realizing that it is possible to do the job better.

A branch in CVS means every single file that is affected has to be 
opened and the branch tag added.  A branch in Subversion means a single 
pointer is copied in the repository (only when you update a file on the 
branch is the file data copied).  A commit in CVS of 1000 files means 
that 1000 files are opened and a comment added to each file.  A commit 
in Subversion means the comment is added once (I'm ignoring calculating 
deltas and revising the repository since that is more similar than 
different).  With CVS, the only thing that associates multiple files in 
a single commit is that they have the same commit message.  In 
Subversion, every single file that is committed at the same time is a 
member of the same global revision, and associated in the repository 
automatically.

For a decent comparison (though somewhat dated) of all of the major SCM 
programs, see this site:

	http://better-scm.berlios.de/comparison/

HTH

John



More information about the cvsnt mailing list