subversion

Matthew Gillen me at mattgillen.net
Wed Aug 9 20:25:23 EDT 2006


Stephen Adler wrote:
> Guys,
> 
> I'm in the midst of setting up a project and I'm thinking of migrating
> away from CVS and using subversion. Does anyone have any thoughts on
> this, or any comments? Anyone with experience using subversion, if you
> could comment, I certainly would like to read them.

Do it.  No question.  We've used it at work for several projects now, and it
kicks CVS' butt.  Major things that I like include:

 - Moving things around (including whole directories) and keeping all the
history with a single command is so nice.  (in CVS, that always required
some repository hacking, and was never very clean)
 - Checkout arbitrary sub-directory trees without additional setup (a la CVS
modules)
 - Branching is easier (both on you and on the server), and branches can
have finite lifetimes (ie you can remove branches when you've merged it back
to trunk; in CVS a branch lives forever
 - Multi-file atomic commits.  ie you have an improvement that includes
changes to multiple files.  You can commit all those changes as one logical
commit.  This comes in real handy when you want to revert or merge
something: it's easy to get the correct version of every file involved.  In
CVS, since each file had it's own version number, this could be a real pain.

There are other features of subversion that might be nice for some people,
but I've never had occasion to use them.  Apache integration is one: you can
use apache as your 'server', and checkout code via an http:// URL.  We just
use it as a drop in for the way we used to use CVS: via ssh tunnels and
command-line invocations.  Incidentally, there is a command-line program,
'svn', that has the same parameters as the 'cvs' command-line program.  So
if you can train your fingers to type 'svn' instead of 'cvs', you've
successfully migrated.

There are a couple things that are non-intuitive, such as the directory
version status after a commit from that directory, but a) they're minor and
b) the number of these 'gotchas' is far fewer than for CVS.

Finally, there's a wiki/issue tracking/subversion repository browsing
package called Trac ( http://trac.edgewall.org/ ) that makes working with
subversion even nicer.

Matt



More information about the Discuss mailing list