Menu Search
Jump to the content X X

Today, too many websites are still inaccessible. In our new book Inclusive Design Patterns, we explore how to craft flexible front-end design patterns and make future-proof and accessible interfaces without extra effort. Hardcover, 312 pages. Get the book now →

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. [Content Care Nov/16/2016]

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

4

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

CVS Resources Link

SVN Link

13

Subversion14 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 Code15 uses Subversion exclusively to distribute code.

Because of Subversion’s popularity, many different Subversion clients are available. If you’re a Windows user, Tortoise SVN16 is a great file browser for viewing, editing and modifying your Subversion code base. If you’re on a Mac, Versions17 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

26

Git27 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:

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

33

Git Resources Link

Mercurial Link

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.

Bazaar Link

40

Bazaar41 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 workflows42, 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 community43 that maintains things like plug-ins44 and lots of third-party tools45, such as GUI software to add a graphical interface to the system.

46

Bazaar resources: Link

Monotone Link

Monotone50 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 tool51
    A version control commit tool that supports Mercurial, Bazaar, Cogito (Git), Subversion, Monotone, and CVS.
  • Meld52 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 https://www.smashingmagazine.com/2009/03/ultimate-round-up-for-version-control-with-subversion/
  2. 2 https://www.smashingmagazine.com/2011/07/modern-version-control-with-git-series/
  3. 3 https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
  4. 4 http://www.nongnu.org/cvs/
  5. 5 http://www.nongnu.org/cvs/
  6. 6 http://www.tortoisecvs.org/
  7. 7 http://eclipse.org
  8. 8 http://netbeans.org
  9. 9 http://www.gnu.org/software/emacs/
  10. 10 http://www.linuxdevcenter.com/pub/a/linux/2002/01/03/cvs_intro.html
  11. 11 http://tldp.org/REF/CVS-BestPractices/html/index.html
  12. 12 http://www.pushok.com/soft_svn_vscvs.php
  13. 13 http://subversion.tigris.org/
  14. 14 http://subversion.tigris.org/
  15. 15 http://code.google.com
  16. 16 http://tortoisesvn.tigris.org/
  17. 17 http://www.versionsapp.com/
  18. 18 https://www.smashingmagazine.com/2009/03/ultimate-round-up-for-version-control-with-subversion/
  19. 19 http://subversion.tigris.org/
  20. 20 http://www.rubyrobot.org/tutorial/subversion-with-mac-os-x
  21. 21 http://codebetter.com/blogs/peter.van.ooijen/archive/2008/05/22/getting-started-with-subversion.aspx
  22. 22 http://www.thinkvitamin.com/features/design/subversion-for-designers
  23. 23 http://www.beanstalkapp.com/
  24. 24 http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients
  25. 25 http://svnkit.com/
  26. 26 http://github.com
  27. 27 http://git-scm.com/
  28. 28 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary
  29. 29 http://git.or.cz/gitwiki/GitProjects
  30. 30 http://github.com
  31. 31 http://github.com/rails
  32. 32 http://github.com/sstephenson/prototype/tree/master
  33. 33 http://github.com
  34. 34 https://www.smashingmagazine.com/2011/07/modern-version-control-with-git-series/
  35. 35 https://www.smashingmagazine.com/2011/08/modern-version-control-with-git-part-2/
  36. 36 http://en.wikipedia.org/wiki/Git_(software)
  37. 37 http://git.or.cz/gitwiki/GitSvnComparsion
  38. 38 http://www.kernel.org/pub/software/scm/git/docs/git-gui.html
  39. 39 https://www.mercurial-scm.org/
  40. 40 http://bazaar-vcs.org/
  41. 41 http://bazaar-vcs.org/
  42. 42 https://www.smashingmagazine.com/2011/01/cleaning-up-the-mess-how-to-keep-your-coding-workflow-organized/
  43. 43 http://bazaar-vcs.org/BzrSupport
  44. 44 http://bazaar-vcs.org/BzrPlugins
  45. 45 http://bazaar-vcs.org/3rdPartyTools
  46. 46 http://bazaar-vcs.org/
  47. 47 http://doc.bazaar-vcs.org/bzr.dev/en/mini-tutorial/index.html
  48. 48 http://bazaar-vcs.org/BzrMigration
  49. 49 http://bazaar-vcs.org/BzrVsGit
  50. 50 http://monotone.ca/
  51. 51 http://qct.sourceforge.net/
  52. 52 http://meld.sourceforge.net/
  53. 53 http://www.russellbeattie.com/blog/distributed-revision-control-systems-git-vs-mercurial-vs-svn
  54. 54 http://en.wikipedia.org/wiki/Revision_control
  55. 55 http://www.dribin.org/dave/blog/archives/2007/12/28/dvcs/

↑ Back to top Tweet itShare on Facebook

Advertisement

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.

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

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

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

    -1
  5. 5

    best tool is textmate’s integrated svn :)

    -1
  6. 6

    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.

    -4
  7. 7

    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.

    0
  8. 8

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

    1
  9. 9

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

    nice post again….

    0
  10. 10

    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.

    3
  11. 11

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

    1
  12. 12

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

    1
  13. 13

    Erica McGillivray

    September 18, 2008 11:48 am

    Excellent list. Also very helpful.

    0
  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!

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

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

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

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

    0
  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???

    2
  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

    0
    • 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..

      Regards
      Ramamirdham

      0
      • 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)

        Cheers,
        Sathish

        2

↑ Back to top