[Bf-committers] Subversion <-> CVS

Alex Mole bf-committers@blender.org
Thu, 06 May 2004 11:56:02 +0100


Hi

I'm not sure if I count as an active member- I'm currently finishing my 
degree which is taking up all my time atm. However, I moved from CVS to 
subversion some time ago, so I can probably offer some answers to the 
questions you asked. The full Subversion documentation is available from 
http://svnbook.red-bean.com [though it seems to be down atm], and it has 
a section devoted to the changeover from CVS to Subversion and its 
implications.

Ton Roosendaal wrote:
> - is the migration from CVS to Subversion 100% noob resistant? This  
> means that doing a checkout, an update, a diff and a commit is just as  
> simple as before?

Mostly, yes. The command line syntax is very similar- basically you just 
replace "cvs" with "svn". However, there is a difference connected with 
updating: whereas with CVS you can use "cvs update -n" [iirc- it's been 
a while ;)] to check for modifications, with subversion you use "svn 
status".
There is also a TortoiseSVN for Windows users, which [as I understand 
it] is much the same as TortoiseCVS.

> - does it require additional software to be installed locally?

Only subversion [or TortoiseSVN] itself.

> - can anyone simply tell me what - for our daily coding practice -  
> Subversion would offer extra?

A small list- there are probably other things:

* much better detection between text/binary files, and far fewer 
problems when the system gets it wrong
* commit history persistence for moved [and renamed] files
* lower load on the server :) [for me, every time I do any cvs thing for 
Blender, it takes ~30 seconds before anything happens. Subversion stores 
the clean current version locally, so diffs don't even need to contact 
the server at all].
* very good branching support. possibly not too relevant for Blender 
because of Tuhopuu, but it could well come in useful. creating a branch 
is almost free to do with subversion.
* hot repository backups. subversion comes with a script to do this for 
you. I'm not sure if this would affect Blender though, as the CVS commit 
traffic is pretty low...

Subversion is basically a reimplementation of the ideas behind CVS [done 
by the same people], but they've dropped the RCS backend and replaced it 
with a BerkelyDB backend, which means that they can do things more 
neatly. It was designed to be a drop-in replacement for clients.

OTOH, as Alexander Ewering pointed out, CVS isn't causing any real 
problems [though there were some things with binary files last week 
IIRC], so it might well not be worth the hassle....


Alex :)