Menu Search
Jump to the content X X
Smashing Conf Barcelona

You know, we use ad-blockers as well. We gotta keep those servers running though. Did you know that we publish useful books and run friendly conferences — crafted for pros like yourself? E.g. our upcoming SmashingConf Barcelona, dedicated to smart front-end techniques and design patterns.

6 Version Control Systems Reviewed

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. [Links checked Nov/16/2016]

6 Version Control1

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.

You might be interested in the following related posts:

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 Link


CVS6 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 CVS7 is a great client for CVS on Windows, and there are many different IDEs, such as Xcode (Mac), Eclipse8, NetBeans9 and Emacs10, that use CVS.

CVS Resources Link

SVN Link


Subversion15 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 Code16 uses Subversion exclusively to distribute code.

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

SVN Resources Link

Git Link


Git28 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.


Git Resources Link

Mercurial Link

Mercurial40 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.

Bazaar Link


Bazaar42 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 workflows43, 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 community44 that maintains things like plug-ins45 and lots of third-party tools46, such as GUI software to add a graphical interface to the system.


Bazaar resources: Link

Monotone Link

Monotone51 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.

Version Control Tools Link

  • QCT GUI commit tool52
    A version control commit tool that supports Mercurial, Bazaar, Cogito (Git), Subversion, Monotone, and CVS.
  • Meld53 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.

Version Control Resources Link

Footnotes Link

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29;a=summary
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56

↑ Back to top Tweet itShare on Facebook

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

  1. 1

    Wow, thanks, never used any of those applications but I will certainly check out some of those. Thanks.

  2. 2

    Russell Heimlich

    September 18, 2008 9:54 am

    My favorite GUI SVN Client is SmartSVN. Cross platform and easy to use. The compare tool is one of the best I’ve seen.

  3. 3

    I used to use svn with Versions, but I can’t really say I enjoyed the experience. If you’re not afraid of terminal, I’d recommend you give Git a try. Once you have figured out how to set it up, it’s a breeze to use.

  4. 4

    I’ve recently switched over to Mercurial (abbreviated Hg after Mercury) after using SVN for years and finding Git’s mish-mash of sub-programs horrendous to use (the quality varies so much, whereas Hg is pure Python code throughout). Also, how come you didn’t mention Mozilla use Hg for Firefox etc? I just wish their were more GUI clients for Hg on Mac.

  5. 5

    best tool is textmate’s integrated svn :)

  6. 6

    I always used Tortoise CVS it works great!
    Have to check the other ones out ass well soon.

    nice post again….

  7. 7

    One major downside to CVS is that it doesn’t support binary diffs. So if you use it for more than code you end up with a lot of duplication. The other tools are more efficient so if for example you have a website project you can include images, mock-ups and such in the repository as well.

  8. 8

    I recently switched to Git although it took a little while to pick things up it was worthwhile. I stringly suggest getting the Peepcode Screencast on Git. It was the best $9 I’ve spent and well worth the hour to run through it.

  9. 9

    I use CVS and SVN quite a lot, never knew about the others

  10. 10

    I’m using the subversion way, with svn on Ubuntu as client. Nice listing by the way

  11. 11

    Erica McGillivray

    September 18, 2008 11:48 am

    Excellent list. Also very helpful.

  12. 12

    I just switched to using SVN for my web development projects and I will never go back. For OS X using Versions Versions has been a pleasant way to implement SVN into my workflow. Combine Versions with Changes Changes for diff comparison and I’m pretty sure you’ll never go back to “file.htm.old” again.

  13. 13

    My favorite goes to Subversion (hosted @ Beanstalk) with Tortoise as client.
    The ultimate combo !

  14. 14

    André Faria Gomes

    September 18, 2008 11:53 am

    I think that Git is becaming more and more popular because of the Rails Community, but Mercurial and Baazar are also good choices.
    Very Nice Listing. Thanks!

  15. 15

    Thomas Dedericks

    September 18, 2008 1:46 pm

    Great article! I’ll definitely give a chance to Bazaar.

    jQuery tips, version control… looks like some developpers are sneaking inside SM :)

  16. 16

    VersionsVersions for Mac OSX is great! It’s still in Beta, but far superior and more user-friendly than all of the other SVN clients I’ve tried for either Mac or PC.

  17. 17

    I use TortiseSVN on Windows and svnX for Mac. For Hosted SVN we use Springloops which is similar to Beanstalk but has a friendly UI and Deployment actually makes sense.

  18. 18

    Luciano Moretti

    September 18, 2008 9:19 pm

    We use SVN from long time and is very great as a versioning tool. As a client we use mixed, TortoiseSVN (admin, advanced users) and SVN for Dreamweaver (visual developers, HTML coders).
    This 2 combination is the best we find out.

  19. 19

    I appreciate the article. But I’d like to extend the question. I’m a lone and very basic developer with no current experience with version control systems. A friend recommended SVN but I’ve barely gotten my hands around Eclipse and Mysql. which are the current backbone of my development environment. I am using the Brit, Eclipse based, report writer against MySql databases.(I’m on windows, XP and vista with Freeware only) I’ve looked at the Svn documentation, but am very wary of adding that complexity into the environment I barely understand. I’d like to continue to set up an environment that can grow, (languages and tools) as I do. I only have so much bandwidth for learning!

    What advice does this much smarter crowd have to offer???

  20. 20

    Excellent info.
    I have used CVS before and not dared to use any other yet.
    Will try to use others sometime.

    Pathange Vinay

    • 21

      Hello All Version Control guru’s

      Excellent article and comments from you all..

      How are you doing? just a small favor.. I am evaluating an alternate tool from CVS that is currently used by my org.. As HP support is no longer available, I was told, CVS is on its way out.. We need an alternate tool.. Now we have parallel software changes coming up, is it worthwhile to use SVN or GIT or Mercurial.. Kindly advice.. Any recommendations welcome from Version Control Guru’s posted in this website..


      • 22

        Sathish Murugan

        June 8, 2011 10:46 pm

        Hi Ram,

        I’m using Nebula from BluePhenix. It sounds good to use. You can manage more than one release at a time and you can do changes of one release to another. Just try Nebula, You will avoid all these listed software (Personal Opinion)


  21. 23

    Mercurial section should include link to Bitbucket – a equivalent of GitHub

  22. 24

    Excellent info.
    I’m just about to introduce version control for my company projects. The list came at just the right time, before I pick something that boxes us into a corner.

    Mark Jones

  23. 25

    I have used all the above (except LibreSource) + GNU Arch, SVK (with SVN backend). The best according to me (right balance) is Hg/Mercurial. For a real pro wanting full control and needs raw speed (little faster than hg) is Git. Git is cool but beware that you can easily mess around by trying commands that a novice should not be playing with!

  24. 26

    brilliant – I used to use 4projects, VCS is much better for virtual teams than email :)

  25. 27

    I find Git is much easier to learn than subversion. Type “git init” and your repository is ready. Compare this to subversion: “svnadmin create --fs-type fsfs .” Not to mention branching, tagging, renaming or removing files.
    There are much more commands in Git than in Subversion, but you need only a few for daily work.

  26. 28

    Never used this kind of applications before, but will certainly give it a go.
    Do any of these tools work for images as well code, as this will be ideal.

  27. 29

    Ever since I switched from SVN to Git, I have been glad I made the switch. Being able to have the flexibility that Git brings to the table is just an amazing facet to development.

  28. 30

    I use svn via VisualSVN – there server was free and took about 10 minutes to setup and their client (although you’re not forced to use it) integrates itself into Visual Studio seamlessly.

  29. 31

    Does anybody have any information on job/part number applications for design? Working at a larger company we would like to have a piece of software that allows to look up part numbers etc that we can place at the bottom of our printed documents.

    Version control would also be nice. Just wondering if anybody had any experience with this.


  30. 32

    Just finished setting up SubVersion/Apache server with TortoiseSVN clients for a pile of legacy code with myriad branches. I like it so far, finally get lazy boss to almost document his changes (using “log required” policy). At least now I know where and what they are and the order they occurred.

    My only prior experience was SourceSafe and PVCS, so I cannot compare to the distributed products. I will say that I would have a concern over the integrity of multiple repositories.

    I liked the article and found it very informative.

  31. 33

    The article is right on time but I’m wondering about this:
    How do you use svn in a graphic studio for files like .cdr, .jpg, .indd etc?

  32. 34

    Tom Brander: You should definitely give version control a try. It’s nice even for a single developer. And you can start off very simply: at a minimum, you only need to know how to set up a repository and check in your code and changes. Then you can go on your way, knowing that all your changes exist in the repository if you ever need them. You can put off learning even simple things like how to look through the history and fetch old versions until you actually need them (or are bored and have some spare bandwidth for learning).

    I won’t try and tell you which you should use…it probably doesn’t matter too much. Getting started with any one should be pretty simple, and the basic concepts will transfer reasonably well if you decide to switch later. If you have a friend who uses SVN, that may well be the best choice for you. I think the biggest hurdle getting started is figuring out the terminology — sometimes you know what effect you want to achieve, but not what it’s called in the documentation. So having someone to ask questions of can be helpful.

    Good luck!


  33. 35

    Malcolm Almeida

    September 19, 2008 10:28 pm

    Hey Thanks for this, this would definitely help a lot.

    Cheers :)

  34. 36

    Very thorough set of reviews – SVN’s been a bit of a fearful topic for me (a designer) after having some horrible experiences with Tortoise SVN a few years back that had to do with a problem between swapping files across OS’s… I’ve always held out hope that a new wave of SVN tools would make some of the tricker parts of SVN easier to use, and from this list I think I’ll end up trying out at least a few. Thanks for the great information. MakeDesign,NotWar

  35. 37

    Well done!!! Keep on smashing us!!

  36. 38

    Joshua, Thanks for the advice, That’s along the lines of what I’ve been thinking, I guess I’ll just have to leap, like with most things! I’ll probably try SVN, with one of the Eclipse plug ins, and go from there.

  37. 39

    Tourtoise svn and the svn plugin for eclipse are really the best in my oppinion

  38. 40

    You have one important thing forgotten: for most shared projects, there have to be an extra server, mostly Apache. For CVS and SVN, there have to be a customized configuration, for e.g. the mod_dav has to be activated for CVS and SVN, but not for Bazaar. To know, if a custom configuration is required or if the SCM system fits to the default configuration, is important for many people. They’ll learn which SCM systems could be used cost-effective and fast to set up.

  39. 41

    1. I usually work in projects involving very large files (lossless compression video files) and it would be nice if everyone on the team had local access to the files, because it’s way to slow to work across the network. Would any of this systems be right for me?

    2. what about disk space? As far as I understand all of this system allow the users to go back to earlier versions, that will probably take a lot of disk space since they are big bynary files and a lot of things change. Is it possible not keep the history?

  40. 42

    sccs was the first verison control system I’m aware of, UNIX System III from AT&T/Bell Labs circa 1981.

  41. 43

    You guys really gave Monotone short shrift here- it’s quite a nice setup with some very smart people working on it.

  42. 44

    An excellent comparison worthy of Smashing Magazine. I’m glad to see that Smashing has been writing more lately on back-end development (i.e., scripting, version control, etc.) as well as the design-focused posts that we’ve all come to know and love you for. I think, for me at least, you’ve hit just the right mix!

  43. 45

    SpringLoops are pretty good!

  44. 46

    Thanks and really a great knowledge base ! As far as now I have used CVS as well as SVN. I am using it on a Mac platform and its really very helpful for the easy version control of the various doc’s I work regularly as a part of quality Control. I am using iSVN on a Mac platform. Great post fr the beginners!

  45. 47

    With topics like these and some unanswered questions I really wish there’s a forum on this site to discuss and share the knowledge beyond comments… but that’s just a thought :)

  46. 48

    Bazaar’s the shit. It’s so easy to setup and to use, I’m inclined to say it’s the almost perfect version control system for any not-so-tech-savvy designer, if ever needed. Even using it on the command line is pretty simple.

    I always feared vc but wanted to get into it, as it really can save you from headaches. I started reading a book about Subversion three times but always gave up. Not that I could not understand it, I’m more of a developer than a designer, but it bored me to death. Now Bazaar is really simple to get started with and has a pretty easy to understand user guide that will walk you through the very basic steps needed to maintain projects. Sometimes you won’t need anything more. And if you do need more later on, be sure, Bazaar has it; despite its simplicity.

    P.S.: I’m not on Canonical Ltd.’s payroll. :P

  47. 49

    Andrei Railean

    October 1, 2008 3:04 am

    There’s also Fossil –
    It’s interesting because it uses SQLite for it’s repository storage. This makes the repositories easy to move around.

  48. 50

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

  49. 51

    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.

  50. 52

    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!

  51. 53

    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.

  52. 54

    Craig Huffstetler

    June 5, 2009 8:16 am

    A poll is a nice idea.

  53. 55

    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.

  54. 56

    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]

  55. 57

    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 ?

  56. 58

    Excellent list
    SVN is the master still….

    Gokul Kartha
    Senior Engineer

  57. 59

    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?

  58. 60

    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…

  59. 61

    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.

  60. 62

    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!

    • 63

      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 :-) ?

  61. 64


    July 16, 2010 3:29 pm

    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.

  62. 65

    suresh singh

    July 20, 2010 11:34 pm

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

  63. 66

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

  64. 67

    John Corrigan

    October 3, 2010 5:13 pm

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

  65. 68

    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 …

  66. 70

    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…

  67. 71

    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!

  68. 72

    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

  69. 73

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

  70. 74

    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


  71. 75

    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.

  72. 76

    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.

  73. 77

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

  74. 78

    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!

  75. 79

    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.

  76. 80

    Maria Kraemer

    June 1, 2012 6:05 pm

    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.

  77. 81

    version 7.0 above


↑ Back to top