[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