In this post , we compare the specifics of CVS and SVN and look at the advantages and disadvantages of each.Some people want to ditch both these in favour of Mecurial or GIT but SVN has been leading the pack.
News: Chosing a version control : SVN or CVS ?
- Posted by: vinay singh
- Posted on: September 21 2010 11:17 EDT
- A bit late? by Adriaan de J. on September 21 2010 14:10 EDT
- no good argument for CVS left by jilles van gurp on September 21 2010 17:44 EDT
- Re: no good argument for CVS left by Jeffrey Bonevich on September 21 2010 21:19 EDT
- no good argument for CVS left by vinay singh on September 22 2010 10:06 EDT
- Why GIT by marc schipperheyn on September 22 2010 15:01 EDT
- no good argument for CVS left by Jan de Jonge on September 22 2010 17:22 EDT
- Chosing a version control : SVN or CVS ? by Jan de Jonge on September 21 2010 18:06 EDT
- Chosing a version control : SVN or CVS ? by Christian Ouellet on September 21 2010 21:13 EDT
- CVS is an hero, but by Eric Meallier on September 22 2010 04:07 EDT
- Chosing a version control : SVN or CVS ? by michele michele on September 22 2010 06:40 EDT
- I'm just glad clearcase was left out by peter lin on September 22 2010 10:03 EDT
- CVS? by P P on September 22 2010 11:01 EDT
- Linus Torvalds on Git by Grzegorz Grzybek on September 23 2010 01:19 EDT
Shouldn't you be comparing SVN with Git?
What about Bazaar?
There are still so many users out there using CVS. It is one of the oldest open source oldest version system. Eclipse has support for CVS and SVN. There are third party sites hosting SVN and CVS allowing you to set up an account and get started immediately. From what I have read, Git/Mercurial/Bazaar are difficult to set up for Windows users.
With eclipse you are 10 minutes away from Mecurial integration, even if you've never seen Mecurial before (cause 10 minutes is what it took me to checkout my first Mecurial project via eclipse). Plugin worked first time, no probs.
From what I have read, Git/Mercurial/Bazaar are difficult to set up for Windows users.
My team works with git on windows extensively. That is, server on linux, client on windows. Client part is not that dificult to set up.
There are benefits, but my problem with git is lack of continuous integration. It is neither windows-specific nor git-specific though. It is a conceptual impedance mismatch between CI and distributed VCS.
Sorry but at this point in time, or rather, for the past half decade, there is no good argument left in favour of CVS. CVS is a counter productive waste of time. Pretty much any alternative is a better one. Svn is and has been a drop in replacement for half a decade+. It went from being the fashionable choice to being the defacto choice to being the conservative choice.
If anybody tries to convince you otherwise, they are full of shit and use it as an argument to challenge any other technical decision they try to make as well. Seriously. Five years ago, arguing for CVS in favour of svn would mean your skills were seriously out of date but you sort of could get away with it hiding behind the "I'm a conservative guy" type argument (which is the sort of the safe bullshit margin we enjoy in this industry where we are full of shit & do a lot of damage but still get paid for it). Five years onwards, we are talking plain ignorance & stupidity, and your manager probably knows it.
There's a difference between being cautious and being an ignorant fool. Only ignorant fools choose CVS these days. You are probably better off just putting your code on a shared network drive because if you needed version control, you'd be using something more capable by now anyway and shared drives are a lot less hassle when you don't. Which arguably you don't if you are happy with CVS.
But as other people point out. Skip svn, and go straight for Git. Seriously, the industry has already moved on and so should you. But you can get away with being an ignorant fool for now. But now is the time to buy into it, don't wait. You are not an early adopter, millions preceded you.
Wow,. Jilles. Way to articulate an argument.
Wow. Had never heard so much argument against CVS. I would not be surprised to read against Microsoft VSS. As mentioned by fellow readers, SVN is slightly better against CVS and is replacing it fast. One would chose between SVN when starting a new project but I would still not migrate 100% of my existing projects to SVN.
SVN is not "slightly" better than CVS. It is hugely better. You list the reasons yourself in your article. CVS is a pain. The only reason to use it is because it's already there in a legacy project (then again, migrating to SVN is relatively painless).
As others have said, you should be comparing SVN to Gits, Mercurial and the like.
I'm being forced to use Git more and more with a lot of open source projects having moved to it.
I've been happily using svn for years and I was wondering if anyone can explain to me why Git is so great. I'm on Windows and the Git GUI is total crap. What's so great about it?
Git seems to be nice but unfortunately it doesn't integrate nicely with Continuum, our continous integration tool. I don't know if things have changed now though. Will take look again.
Until I read this post I never could have imagined there are mortals on this planet in this modern times who still use or consider CVS for use. Are you living on Cuba or North Korea? Man, have you thought about transaction support? Have you thought about atomic commit so you don't end up with a broken repository?
The company which I work for migrated last may 2010 from CVS to SVN. Seeing the trends for other new VCS like Git, Bazaar made me cautious about SVN. I am thinking that if people were already moving on to something else, then SVN is not the 7th wonder of the world.
At its core maybe it is very good, but we use MyEclipse, Netbeans and RAD and all integrated plugins for SVN make you regrets CVS. CVS integration into Eclipse is so good compared to SVN plugins that it was a shock when I first had to checkout our J2EE project with many modules. I tried Subsversive, but because of RAD, Subclipse was officially chosen. Some features are less intuitive than with CVS. For example, I still has not quite figured how use the history, while I never had problem with CVS. For one project one branch workspace, I see no problems. It is with multiple branches multiple projects that we are having problems. Also, when I installed RAD, in may also, no SVN plugin was officially supported.
SmartSVN client make things easier. It offer the one good SVN feature, it is a view of the last transaction with the SVN repositories in your workspace, that you can use to merge and revert changes.
Man, it seems that even for SVN integration, Intellij is such a more superior dev environment than eclipse.
is an hero from another century
I used both: SVN and CVS.
I started with CVS and then I migrated to SVN (only on my projects and only to test).
My opinion on SVN is that it is a little better than CVS; so, moving all company's software to another VC only for gaining a little benefit, it is not valuable.
That's why many people still use CVS and not SVN.
But, of course, GIT is another thing.....
Moving from CVS to GIT should be more interesting that moving from CVS to SVN.
One reason NOT to use CVS: non-atomic commits. SVN has them, CVS doesn't. This is not a minor thing! You should move to SVN, if only for this.
(Actually, you should move to better things than SVN)
I used CVS for a long time with apache projects. Then apache moved to SVN and things were a little annoying at first. If someone wants to use CVS, it's their choice. Atleast it's not as horrible as clearcase.
CVS is a curse you live with if legacy absolutely prevents migration. It's technically a VCS in the same sense as a USB memory stick is technically a content management system.
On a side-note, I find it a bit funny that the article points to CVS:s tagging feature as a selling point. With the absence of atomic commits and the horrible file-based tracking of CVS, tagging a module of any size larger than a small hobby-project can (and will) take upwards to or more than 45 minutes. And if you don't think that's an issue, imagine you're stuck waiting for half an hour on tagging a critical patch release so you can deliver it to your operations guy, while your stakeholders are looking at a broken site, screaming at you.
I have never seen tagging taking so much time in CVS. And it is not a hobby project.
Plus - I think SVN is better option for Enterprise. Git is great, clean but requires empathy and good team work. It's not a good solution for mere-mortals and ticket-resolvers who don't want to know the whole picture.
SVN allowing more controll (due to its centralized nature) is not as good argument for using it in Enterprise instead of Git. Better arguent is saving administrator's work by preventing him to go to every casua developer in case of problems...