Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Arguments to convince to switch from CVS to SVN

The UNIX department of my company currently uses CVS as source-version control system. They use it in a very strange way: different repositories for development/testing/production code (for the same project), no one tags anything, weird directory architecture, and so on.

The system has been set for ages but now, I have an opportunity to organize a meeting where I have to suggest changes. I'd like to make them change from CVS to SVN (Mercurial or Git might be even better, however I can't really recommand using a system I don't know well, and switching to SVN will already be a great step forward).

I don't have much experience with CVS so I can't compare them efficiently: I just know it doesn't support atomic operations and that it is deprecated.

What killer arguments would you use to convince my collegues to do the switch ?

Thank you very much.

like image 291
ereOn Avatar asked Apr 13 '10 09:04

ereOn


People also ask

What is better CVS or SVN?

SubVersion is far better then CVS at handling binary files and to add, delete and move files inside the repository. SubVersion usage is transparent: just replace “cvs” with “svn” and 99% of the usage is the same.

Is CVS and SVN the same?

CVS and SVN are two such version control systems used in software development. The main difference between CVS and SVN is that the CVS is a free, client-server based version controlling system while SVN is an advanced and newer software version controlling system than CVS.

Which is a disadvantage with the use of an SVN?

SVN's cons are the following: Provides limited offline capabilities. Everything operates on a centralized repository using a client-server approach. When contributors are offline and unable to access the server, they essentially lose the ability to contribute.


2 Answers

Hmm, this setup sounds like a distributed VCS, so Mercurial or Git may match in very well. Multi-repository-setup is the speciality of it. I personally prefer Subversion, but in your case you should take a look at these, hginit may be a good introduction to Mercurial.

Anyways, arguments for switching:

  • atomic commits
  • better handling of binary files
  • version control of directories (only SVN)
  • properties on files and directories (only SVN)
like image 81
Mnementh Avatar answered Sep 19 '22 21:09

Mnementh


Actually atomic commits are a deal breaker, not some tasty feature. For example, you want to commit 50 changed files. With SVN you svn commit and it happens that network fails in the middle of commit - your commit will be ignored. With CVS you will have a half of the commit in the repository, so now everyone will update to broken code and become unhappy and the daily build can fail and make everyone even more unhappy. With svn you either have a successful commit, or it looks like you have never though of the commit - the repository is always intact.

like image 20
sharptooth Avatar answered Sep 18 '22 21:09

sharptooth