In early 2000, CollabNet,
Inc. (
https://www.collab.net) began seeking
developers to write a replacement for CVS. CollabNet offers a
collaboration software suite called CollabNet Enterprise Edition
(CEE)
[2]
of which one component is version control. Although
CEE used CVS as its initial version control system, CVS's
limitations were obvious from the beginning, and CollabNet knew
it would eventually have to find something better.
Unfortunately, CVS had become the
de
facto
standard in the open source world largely
because there
wasn't
anything better, at
least not under a free license. So CollabNet determined to
write a new version control system from scratch, retaining the
basic ideas of CVS, but without the bugs and misfeatures.
In February 2000, they contacted Karl Fogel, the author of
Open Source Development with CVS
(Coriolis, 1999), and asked if he'd like to work on this new
project. Coincidentally, at the time Karl was already
discussing a design for a new version control system with his
friend Jim Blandy. In 1995, the two had started Cyclic
Software, a company providing CVS support contracts, and
although they later sold the business, they still used CVS every
day at their jobs. Their frustration with CVS had led Jim to
think carefully about better ways to manage versioned data, and
he'd already come up with not only the name
“Subversion”, but also with the basic design of the
Subversion repository. When CollabNet called, Karl immediately
agreed to work on the project, and Jim got his employer, Red Hat
Software, to essentially donate him to the project for an
indefinite period of time. CollabNet hired Karl and Ben
Collins-Sussman, and detailed design work began in May. With
the help of some well-placed prods from Brian Behlendorf and
Jason Robbins of CollabNet, and Greg Stein (at the time an
independent developer active in the WebDAV/DeltaV specification
process), Subversion quickly attracted a community of active
developers. It turned out that many people had had the same
frustrating experiences with CVS, and welcomed the chance to
finally do something about it.
The original design team settled on some simple goals. They
didn't want to break new ground in version control methodology,
they just wanted to fix CVS. They decided that Subversion would
match CVS's features, and preserve the same development model,
but not duplicate CVS's most obvious flaws. And although it did
not need to be a drop-in replacement for CVS, it should be
similar enough that any CVS user could make the switch with
little effort.
After fourteen months of coding, Subversion became
“self-hosting” on August 31, 2001. That is,
Subversion developers stopped using CVS to manage Subversion's
own source code, and started using Subversion instead.
While CollabNet started the project, and still funds a large
chunk of the work (it pays the salaries of a few full-time
Subversion developers), Subversion is run like most open-source
projects, governed by a loose, transparent set of rules that
encourage meritocracy. CollabNet's copyright license is fully
compliant with the Debian Free Software Guidelines. In other
words, anyone is free to download, modify, and redistribute
Subversion as he pleases; no permission from CollabNet or anyone
else is required.