CVS is not as bad as its evil reputation…

Sunday, January 27th, 2008

Many Open Source projects, including FreeBSD, OpenPKG, RPM5, etc., for historical reasons even in 2008 still use the old Concurrent Versions System (CVS) — a popular Version Control System (VCS) of the ’90s.

At its zenith, CVS was the ultimative king, as it really dwarfed the older RCS or even the ancient SCCS. CVS was revolutionary because of its “checkout and commit at any time, resolve conflicts later on demand” instead of the “exclusively lock in advance for conflict-free checkout and commit” approach of other VCS. CVS also provided nice global symbolic revision and branch tags on top of the per-file revisions and branches, a consistent command line interface, and many more. Hence, in the ’90s CVS was really everywhere.

But in the last 8 years the VCS world changed dramatically: today we have the more “modern” Subversion, Git, Mercurial, Monotone, Bazaar… and now everybody considers CVS to be “just bad” and everybody still using it to be just “technology agnostic”.

Distributed VCS + Central ACL

Sunday, September 16th, 2007

In the Version Control System (VCS) area there are currently mainly two camps: the centralized ones like the good old CVS, the successor Subversion, etc and the distributed ones like the modern Monotone, Mercurial, Git, Bazaar, etc.

The interesting point is that the central VCS style of working inherently allows strong access control while in the distributed VCS style of working the “share everything between everybody” is the primary mantra. If one wants to combine both distributed version control and central access control, it becomes between interesting and partly impossible.