7 Version Control Systems Reviewed

Advertisement

If you’ve ever collaborated with other people on a project, you know the frustration of constantly swapping files. Some do it by email, some through file upload services and some by other methods. It’s a pain in the neck, and every designer and developer knows it. Revision control is an excellent way to combat the problem of sharing files between workers.

Most web-developers have probably worked with some sort of revision control system, but designers may find it a foreign concept. The most obvious benefit of using revision control is the ability to have an unlimited number of people working on the same code base, without having to constantly send files back and forth.

But designers and developers can both benefit from using revision control systems to keep copies of their files and designs. You can instantly browse previous “commits” to your repository and revert to earlier versions if something happens.

This article reviews some of the top open-source version control systems and tools that make setting up a version control system easy.

CVS

1

CVS2 is the grandfather of revision control systems. It was first released in 1986, and Google Code still hosts the original Usenet post announcing CVS. CVS is the de facto standard and is installed virtually everywhere. However, the code base isn’t as fully featured as SVN or other solutions.

The learning curve isn’t too steep for CVS, and it’s a very simple system for making sure files and revisions are kept up to date. While CVS may be an older technology, it’s still quite useful for any designer or developer for backing up and sharing files.

Tortoise CVS3 is a great client for CVS on Windows, and there are many different IDEs, such as Xcode174 (Mac), Eclipse5, NetBeans6 and Emacs7, that use CVS.

CVS Resources

SVN

12

Subversion13 is probably the version control system with the widest adoption. Most open-source projects use Subversion as a repository because other larger projects, such as SourceForge, Apache, Python, Ruby and many others, use it as well. Google Code14 uses Subversion exclusively to distribute code.

Because of Subversion’s popularity, many different Subversion clients are available. If you’re a Windows user, Tortoise SVN15 is a great file browser for viewing, editing and modifying your Subversion code base. If you’re on a Mac, Versions16 is an elegant client that provides a “pleasant way to work with Subversion.” Xcode174 is Apple’s developer environment and Subversion client that ships with Leopard on a Mac.

SVN Resources

Git

25

Git26 is the new fast-rising star of version control systems. Initially developed by Linux kernel creator Linus Torvalds, Git has recently taken the Web development community by storm. Git offers a much different type of version control in that it’s a distributed version control system. With a distributed version control system, there isn’t one centralized code base to pull the code from. Different branches hold different parts of the code. Other version control systems, such as SVN and CVS, use centralized version control, meaning that only one master copy of the software is used.

Git prides itself on being a fast and efficient system, and many major open-source projects use Git to power their repositories; projects like:

GitHub31 has recently helped establish Git as a great version control system, providing a beautiful front end for many large projects, such as Rails32 and Prototype33. However, Git isn’t as easy to pick up as CVS or SVN, so it’s much harder to use for a beginner.

34

Git Resources

Mercurial

38

Mercurial39 is another open-source distributed version control system, like Git. Mercurial was designed for larger projects, most likely outside the scope of designers and independent Web developers. That doesn’t mean that small development teams can’t or shouldn’t use it. Mercurial is extremely fast, and the creators built the software with performance as the most important feature. The name “mercurial” is an adjective that means “Relating to or having characteristics (eloquence, swiftness, cleverness) attributed to the god Mercury.”

Aside from being very fast and scalable, Mercurial is a much simpler system than Git, which is why it appeals to some developers. There aren’t as many functions to learn, and the functions are similar to those in other CVS systems. It also comes equipped with a stand-alone Web interface and extensive documentation on understanding Mercurial if you have been using another system.

Resources for Mercurial

Bazaar

44

Bazaar45 is yet another distributed version control system, like Mercurial and Git, that offers a very friendly user experience. It calls itself “Version control for human beings.” It supports many different types of workflows46, from solo to centralized to decentralized, with many variations in between.

One of the main features of Bazaar is the fine-grained control you’ll have over the setup. As shown with the workflows, you can use it to fit almost any scenario of users and setups. This is a great revision control system for nearly any project because it’s so easy to modify. It’s also embeddable, so you can add it to existing projects.

Bazaar also has a strong community47 that maintains things like plug-ins48 and lots of third-party tools49, such as GUI software to add a graphical interface to the system.

50

Bazaar resources:

LibreSource

55

LibreSource56 is a Web portal used to manage collaborative projects. It’s based on Java/J2EE and is more a set of visual collaborative tools to help facilitate projects and teams. While the other systems discussed so far have been designed more on a “command line” level, LibreSource is centered more on tools that don’t have a big learning curve.

It has built-in features such as Wiki pages, forums, trackers, Synchronizers, Subversion repositories, files, download areas, drop boxes, forms, instant messaging and more. Think of LibreSource as a collaboration hub for project development.

LibreSource is perfect for the developer or designer who doesn’t want to learn lots of technical jargon and wants to focus more on communication with the project’s members. Just install the package and start collaborating, without facing much of a learning curve.

57

Resources for LibreSource

Monotone

Monotone60 is the baby of the distributed revision control bunch. While many of Monotone’s peers focus on performance, Monotone places higher value on integrity than performance. In fact, it can take quite a bit of time for a new user of Monotone to simply download the initial repository due to the extensive validation and authentication required.

Monotone is fairly easy to learn if you’re familiar with CVS systems, and it can import previous CVS projects. However, it’s not quite as popular as other version control systems.

Monotone Resources

Version Control Tools

  • QCT GUI commit tool63
    A version control commit tool that supports Mercurial, Bazaar, Cogito (Git), Subversion, Monotone, and CVS.
  • Meld64 is a merge and diff tool that allows you to compare two or three files and edit them in place, while updating automatically. It works with CVS, Subversion, Bazaar and Mercurial.
  • Push Me Pull You65 is another GUI for distributed version control systems. It works with Mercurial, Git, Bazaar and Darcs.

Version Control Resources

Footnotes

  1. 1 http://www.nongnu.org/cvs/
  2. 2 http://www.nongnu.org/cvs/
  3. 3 http://www.tortoisecvs.org/
  4. 4 http://developer.apple.com/tools/xcode/
  5. 5 http://eclipse.org
  6. 6 http://netbeans.org
  7. 7 http://www.gnu.org/software/emacs/
  8. 8 http://www.linuxdevcenter.com/pub/a/linux/2002/01/03/cvs_intro.html
  9. 9 http://tldp.org/REF/CVS-BestPractices/html/index.html
  10. 10 http://www.pushok.com/soft_svn_vscvs.php
  11. 11 http://developer.apple.com/internet/opensource/cvsoverview.html
  12. 12 http://subversion.tigris.org/
  13. 13 http://subversion.tigris.org/
  14. 14 http://code.google.com
  15. 15 http://tortoisesvn.tigris.org/
  16. 16 http://www.versionsapp.com/
  17. 17 http://developer.apple.com/tools/xcode/
  18. 18 http://subversion.tigris.org/
  19. 19 http://www.rubyrobot.org/tutorial/subversion-with-mac-os-x
  20. 20 http://codebetter.com/blogs/peter.van.ooijen/archive/2008/05/22/getting-started-with-subversion.aspx
  21. 21 http://www.thinkvitamin.com/features/design/subversion-for-designers
  22. 22 http://www.beanstalkapp.com/
  23. 23 http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients
  24. 24 http://svnkit.com/
  25. 25 http://github.com
  26. 26 http://git-scm.com/
  27. 27 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary
  28. 28 http://www.winehq.org/site/git
  29. 29 http://git.fedoraproject.org/git/
  30. 30 http://git.or.cz/gitwiki/GitProjects
  31. 31 http://github.com
  32. 32 http://github.com/rails
  33. 33 http://github.com/sstephenson/prototype/tree/master
  34. 34 http://github.com
  35. 35 http://en.wikipedia.org/wiki/Git_(software)
  36. 36 http://git.or.cz/gitwiki/GitSvnComparsion
  37. 37 http://www.kernel.org/pub/software/scm/git/docs/git-gui.html
  38. 38 http://www.selenic.com/mercurial/wiki/
  39. 39 http://www.selenic.com/mercurial/wiki/
  40. 40 http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial
  41. 41 http://www.selenic.com/mercurial/wiki/index.cgi/GUIClients
  42. 42 http://www.selenic.com/mercurial/wiki/index.cgi/UnderstandingMercurial
  43. 43 http://texagon.blogspot.com/2008/02/use-mercurial-you-git.html
  44. 44 http://bazaar-vcs.org/
  45. 45 http://bazaar-vcs.org/
  46. 46 http://bazaar-vcs.org/Workflows
  47. 47 http://bazaar-vcs.org/BzrSupport
  48. 48 http://bazaar-vcs.org/BzrPlugins
  49. 49 http://bazaar-vcs.org/3rdPartyTools
  50. 50 http://bazaar-vcs.org/
  51. 51 http://bazaar-vcs.org/Documentation
  52. 52 http://doc.bazaar-vcs.org/bzr.dev/en/mini-tutorial/index.html
  53. 53 http://bazaar-vcs.org/BzrMigration
  54. 54 http://bazaar-vcs.org/BzrVsGit
  55. 55 http://dev.libresource.org/
  56. 56 http://dev.libresource.org/
  57. 57 http://dev.libresource.org/
  58. 58 http://dev.libresource.org/home/doc/libresource-user-manual
  59. 59 http://www.versioncontrolblog.com/comparison/LibreSource%20Synchronizer/Subversion/index.html
  60. 60 http://monotone.ca/
  61. 61 http://venge.net/mtn-wiki/
  62. 62 http://www.venge.net/mtn-wiki/InterfacesFrontendsAndTools
  63. 63 http://qct.sourceforge.net/
  64. 64 http://meld.sourceforge.net/
  65. 65 http://pmpu.sharesource.org/
  66. 66 http://www.russellbeattie.com/blog/distributed-revision-control-systems-git-vs-mercurial-vs-svn
  67. 67 http://en.wikipedia.org/wiki/Revision_control
  68. 68 http://www.dribin.org/dave/blog/archives/2007/12/28/dvcs/

↑ Back to top Tweet itShare on Facebook

Glen Stansberry is the editor at Web Jackalope, a blog about creative Web development.

Advertisement
  1. 1

    There’s also Fossil – http://www.fossil-scm.org
    It’s interesting because it uses SQLite for it’s repository storage. This makes the repositories easy to move around.

    2
  2. 52

    We are working on a SVN client integrated in Photoshop.

    This will be a plugin which will let you perform all version control operations directly from Photoshop, and it will make the whole process much nicer and easier too.

    The plugin will be implemented for both Mac and Windows, and it will also have a hosted web space for files.

    At the moment we are looking for beta testers for the project. If you are a designer who uses version control (or would like to start using version control) please send us an e-mail to beta@pixelnovel.com, and we will contact you as soon as the beta version is ready for testing.

    1
  3. 103

    You forgot to mention CVSNT that implements lots of feature plain old CVS lacks (i.e. binary deltas).

    0
  4. 154

    I found this helpful for a couple months, then I learned I could get a 2-user license of Accurev for free. It’s way more fun to use than my SVN for my home projects.
    http://www.accurev.com

    -5
  5. 205

    Nice one!

    I think i’ve decided to starting using some kind of SCM for all my drupal projects. Considering the fact i know very little about programming and that Git, as promising as it sounds, seems to back off even exoerienced developers, seems i’ll be trying out bazzar first… maybe just to get the hang of SCM..

    Anyway,… thanks!

    0
  6. 256

    Heartburn Home Remedy

    April 15, 2009 4:10 am

    The style of writing is quite familiar to me. Have you written guest posts for other blogs?

    -5
  7. 307

    Maybe an idea to create a poll? Be good to see the most popular version control systems, I’ve only used SVN previously but would like to try out newer more popular ones.

    1
  8. 358

    Craig Huffstetler

    June 5, 2009 8:16 am

    A poll is a nice idea.

    1
  9. 409

    It may be helpful to mention that in 9/10 companies in any sector Rational ClearCase (UCM) is the defacto CM system. Just to put the opensource alternatives in perspective.

    -1
  10. 460

    Version Control Systems is like colors. Try some of them and choose the one you like most.
    I started to use VCSs with CVS and worked with it for 2 years, then move to Subversion, then SVK (A kind of distributed Subversion, really good also) and now I am testing Mercurial. I liked the Mercurial simplicity. And it’s command syntax is very similar to SVN syntax. Before using it I gave a look at GIT and didn’t like the fact of have to use hundreds of executables. In mercurial there is only the command ‘hg’. If you don’t know something just use ‘hg help’. To start a new project just run “hg init myproject” and you have a new repository ready to use. Perfect for all size of projects

    And now Google Code supports Mercurial too: http://google-code-updates.blogspot.com/2009/04/mercurial-support-for-project-hosting.html

    And Cogmios, I’m a JEE and Python programmer, worked for several companies of all size and never saw no one using ClearCase. I don’t think it is the defacto CM in any sector beside perhaps the one that uses RUP.

    5
  11. 511

    You should Fossil to the list as an up-and-coming star.
    It has features and is tiny, can be run from any server or home computer, et al.

    But even more important for designers is to skip all the above and use the version control built into photoshop [note, I use Mercurial (some) and GIT(alot) myself, but wouldn’t wish it on a non-programmer]

    0
  12. 562

    Modern VCS are too complex, they aren’t easy to designers. You must to know how it works, then you can control it. It’s painful. It’s just a small tool, i don’t understand, why i will spent more time to study ?

    1
  13. 613

    Hi
    Excellent list
    SVN is the master still….

    Regards
    Gokul Kartha
    Senior Engineer

    -2
  14. 664

    I am not a developer and yet my team is frustrated using Subversion. We cannot seem to get version pushed all the way to the live site for some reason. We have spent over a month on this and I never thought VC would be such a headache. Our project is now big enough that we need some kind of version control. Is there help out there I need to check into?

    0
  15. 715
  16. 766

    Bizarrely, you don’t mention Visual Source Safe, which really sucks but is widely used. On second thought, probably best you didn’t mention it…

    4
  17. 817

    We switched to a GIT about 12 months ago and it seemed really good. But a word of warning to any distributed version control tool is that the more branching and merging between branches the more complex the merging becomes. We ended up with merge hell – where we were spending more and more time merging our changes into the trunk and ‘loosing’ changes. So we have switched to PureCM which uses a centralized server. We choose PureCM over Subversion because its merging capabilities are much better – which is really important if you do parallel development with feature branches.

    -1
  18. 868

    I was going to avoid commenting about which VCS I have used for the past 16 yeas and then I read Scott’s comment! There is someone out there using VSS! VSS is pretty awful, has not been updated in over 10 years (to my knowledge) and costs WAY too much for what you get considering the alternatives. (OK… it comes “free” with Visual Studio Enterprise). I am weaning myself off it on my home machine and I really appreciate this list. Now, why on earth would I allow my team at work to use this? Because about 15 years ago I wrote a validation test/report of its use at our company (regulated medical industry and then the aerospace industry). I really want to graduate to the big kids’ play ground, but I shudder to think about validating another Version Control package!

    0
    • 919

      Yes! There are still people in the world using VSS 6.0 and they would like now to graduate to the big kid’s play ground. I got now the “easy” job to evaluate a new Version Control Software tool. Do you have any input on the way you did your initial VSS validation? Eventually you find the analysis document in your old VSS archive :-) ?

      0
  19. 970

    btw, Monotone is not the baby of the DVCS. Monotone’s initial release was in 2003. Git and Mercurial’s initial releases were both in 2005. Linus has cited Monotone as an influence for Git.

    0
  20. 1021

    Great article, i have used SVN and CSV for version control and i would prefer SVN due to the control it give to user.

    0
  21. 1072

    Great article. Thanks! One suggestion, you need to update your link to the official SVN website as it has moved.

    0
  22. 1123

    As a single developer, I still use RCS its easy to use and on every Unix/Linux system.

    0
  23. 1174

    Hi, Thanks for the list and the feedback, it helps. I am setting this up for sqlserver2008 with database objects from msdb. Have any one tried this for version control (not file system) and if so what is the best tool to use. We have vss and I am checking to see if this has higher version etc. I see there is Source AnyWhere from Dynamsoft, has anyone used this any feed back …
    Thanks

    2
  24. 1276

    Christian Sciberras

    November 1, 2010 11:09 am

    CVS the de facto standard? Are you kidding?
    If some 80’s tech is still being used doesn’t make it a “standard”.
    Windows has been used extensively, monopolistic, even; does that make it the standard Operating System?

    As to the rest of code revision systems…they’re all crap. OK, let be honest, there are ones better than others….but they’re bad, and a huge time waste.

    OK, not using them is worse in larger projects, however, using badly designed systems doesn’t compensate for their huge waste of time.

    The problem is the learning curve (and then the actual setup and features). Honestly, when’s the last time you read a manual on how to use an IDE or text editor (such as Netbeans)? Next to none? Now think of this, what does it take to learn and/or migrate source control?

    In all my years of programming, these systems has been the worst I’ve come through…and that’s saying a lot from a guy which used QBASIC and TurboPascal extensively…

    -8
  25. 1327

    this its the most never focused tecnical info i ever see on web, also the redactor seems to not known how works and also appears that not knowns that ALLL of these software are primary for linux focused..

    CVS are the fist, now SVN are the most compatible integrated dedicated, now git and mercurial take both sides of stupids developers and real developers, windosers stupids developers comes uses mercurial with win-based distro and real developers start to move to git non-central focused, git USED central repo but, dritribued!!! ufff what a inecxat info here!

    -8
  26. 1378

    Esta cuelda e glingos! q s creen!! a malp arido’s, no podlan traucir esto ni con 7 ilenios e estuio e espanol! Chupenme er Pen’e. Blutos q no save’m naa! apoyo a PICCORO

    -5
  27. 1429

    err men how could i translate these comment, looks or seems to be interesting.. umm…

    -2
  28. 1480

    Hello,
    about CM tools, we have in house SVN that is mainly use by our SW community.

    I am looking for a CM tool that can also support system related document like CAD data, MS office document, … Does someone has experience of SVN with other documents then SW related.

    Does someone has information or experience with CM system Alfresco?

    Thanks for your feedback

    Fabian

    0
  29. 1531

    First of all, Git For The Win. Nothing else comes close. And here’s why.
    http://www.youtube.com/watch?v=4XpnKHJAok8

    Secondly, if you use Git, you have the option of using TicGit which is a separate project, it’s a decentralized bug tracker that stores it’s bugs in a ‘ticgit’ branch in your repository, and also has a web server frontend as well. Very useful.

    CVS and SVN are the mentally handicapped cousins of Git.

    1
  30. 1582

    I have been using CVS version control system for years, now I am going to switch to VSS; any feedback will be appreciated.

    http://www.digite.com/products/scm-integration.htm

    0
  31. 1684

    Raleigh Guevarra

    May 28, 2011 9:00 pm

    Hi, is there a version control system that is web based and can be installed on a shared web hosting? Most of the VCS requires a shell access to be able to setup on the server.

    0
  32. 1735

    i am using subversion as my version control.

    nice list, but it would be great if you describe pro and cons for each list you made.
    that would really helpfull for people to make a decision to use one of it.

    0
  33. 1786

    I noticed you mention Subversion however I don’t see any mention of the well used adaptions of Subversion? Surely it’s worth mentioning products such as uberSVN which act as a wrapper for SVN and extend it’s capabilities to make it a lot more of a competitive product in more than the SCM space but actually in the ALM market?

    uberSVN is not the only product out there that takes Subversion to the next level but it is the newest and should be worth mentioning as an option along with the rest above?

    Here’s a video about how it addresses the issue of extendibility to take and SCM into the ALM market: http://www.ubersvn.com/videos#

    1
  34. 1837

    Very Helpful List, But Git is the VCS of this generation.

    1
  35. 1888

    The only ‘this generation’ software is Source Reliance by Core Software Technologies. Hands down the best on the market and it’s treated as mission critical software (i.e. no bugs in it).
    I know we’ve all gotten used to dealing with inadequete and faulty software, but this stuff is for real… It works!

    -6
  36. 1939

    John, I’d like to buy you a drink!
    Didn’t know Source Reliance existed. Best SCM software we ever used.
    Incredibily fast to install and configure and it has features that every developer would kill for!
    Thanks for letting us know about it.

    -5
  37. 1990

    We’ve been using Seapine for a number of years and all in all it’s pretty good, but we found Source Reliance was built to solve all the problems we encounter.
    You can tell the SR engineers understand the problems you encounter in the real world. Has saved us countless hours.
    And by the way they have a special going on right now (made us happy because it didn’t break the bank getting a seat for all 20 of our developers.

    -2
  38. 2041

    version 7.0 above

    0
  39. 2092

    Hi there, try Springloops from 84kids version control software http://www.springloops.io

    4

↑ Back to top