Ultimate Round-Up For Version Control with Subversion


by Glen Stansberry

Subversion is a version control system1 that many Web developers and designers use to back up their work. Subversion was started in 2000 and is quite popular in the open-source community; major repositories such as Google Code2 use it to distribute source code.

While other version control systems, like Git3, have become quite popular among developers, Subversion (SVN) is still considered the standard for version control systems and is used for the majority of projects on the Web that need something like it. SVN provides the ability to share source code in a collaborative way, making it popular with teams for sharing and contributing to projects. It’s also a great choice for designers4 who want to keep versions of their personal work environments.

There are quite a few resources available for those who want to learn about SVN-like tools, tutorials and SVN clients, so that you can get started working with the popular version control system.

Getting Started with SVN Link

If you’re just getting started with SVN, the hardest part is the learning curve. Here are a few tutorials to get you started on the right track and ease the pain.

Subversion Cheat Sheet5
If you’re looking for a more concise version of how to set up SVN, this quick cheat sheet will get you well on your way.

Subversion Cheat Sheet (PNG)6
If you want this concise page of SVN functions and commands, an image (in PNG) and PDF version7 is available.

The Subversion Book8
Version Control with Subversion is an excellent book to start with. It covers every topic related to SVN, from what SVN is to how to use it to advanced usage.

Svn Book9

Subversion Official Documentation10
Once you’ve gotten the basics, check out SVN’s official documentation. The documentation contains just about everything you’ll ever need and is a great reference tool.

SVN 1-Click Setup11
If you’re on a Windows machine, SVN 1-Click Setup will do just what the name implies: set up your SVN environment in one click with an installer.

Subversion Clients Link

SVN clients allow you to bypass more advanced tools such as the command line by providing a graphical interface. Here are a few of the most widely used SVN clients.

Tortoise SVN12 (Windows only)
Tortoise SVN is probably the most widely used Windows shell for SVN and is open source.


Cornerstone14 (Mac only)
Cornerstone is an elegant SVN client for Mac users. It’s not open source and requires a commercial license ($69 USD), but it has an excellent UI to work with.

Cross-platform SVN client built in Python. Open source.

SmartSVN is another cross-platform SVN client, but targeted more at professional developers. The client comes in free and professional versions, with the professional version starting at $79 USD.


Versions18 (Mac only)
Versions is another SVN client with a beautiful interface. Versions is unique because it syncs with the online SVN repository Beanstalk19. Approximately $49 USD.


An open-source Eclipse plug-in providing support for Subversion within the Eclipse IDE. Among its features are local history cache, various visualization tools and merging assistant.


Subcommander is a cross-platform, open-source client that makes basic SVN functions quite easy to use.

FSVS stands for “Fast System Versioning”, and this open-source command-line client does exactly that.

Syncro SVN Client25
A cross-platform SVN client with a fantastic UI. One of the stand-out features of Syncro SVN is its ability to let you quickly see revisions in the same pane. $59 USD.


scplugin27 (Mac only)
Scplugin, also open source, is much like Tortoise SVN in that it uses the Finder on the Mac as an SVN interface.

Psvn.el is an SVN client for eMacs, a popular open-source text editor.

iPhone SVN Log Viewer29
While not technically an SVN client, the iPhone SVN Log Viewer allows you to keep track of commits and changes to your SVN repository in an iPhone app.

IDE Plug-Ins Link

If you already use an integrated development environment30 (IDE), then plug-ins are available to interface with SVN.

Subclipse is a plug-in for the Eclipse IDE32 for Java.


AnkhSVN is an SVN client for Microsoft’s Visual Studio35.


VisualSVN for Visual Basic by Microsoft isn’t open source; a license costs $49.

How to Ignore IDE Project Files in Subversion38
If you’re going to use an IDE on your project with SVN, check out this article on how to exclude project files from your repository.

SVN Repository Browsers Link

Trac is much more than an SVN browser: it’s a complete project management tool. Aside from letting you browse SVN repositories, Trac allows you to create wikis, track bugs and much more. Trac is used in many open-source projects to manage workflow and is considered the standard for this purpose.


SVN repositories are pretty plain and don’t let you browse the code very easily. By default, SVN just dumps source code into the most basic form of HTML and links. Here are a few scripts you can upload to your server to get a better interface for your project’s source code.

Warehouse is a beautiful open-source application that allows you to browse SVN repositories.


WebSVN is in PHP, it’s portable, and it’s easy to install.

A simple repository browser that allows for multiple repositories without browser or platform-specific extensions.

Polarion WebClient for SVN45
If Java is your bag, Polarion offers a platform-independent Java Web browser for SVN.

Hosted SVN Link

For those wanting a little more control over their repositories and a public face for their projects, hosted SVN might be a good solution. Hosted SVN takes the guesswork out of creating your repository and installing an SVN browser for it.

Google Code46
You can easily host your project’s source code for free using Google Code.


CVSDude is a popular CVS and SVN repository hosting service. Plans start at $5.99 per month.

Beanstalk is similar to CVSDude except that it syncs seamlessly with Versions (mentioned above) and has a much more elegant design. A free version for a limited number of users and 100 MB of upload space is available. Personal plans start at $15 per month.


Unfuddle hosts SVN and Git, manages bug tracking, and offers 200 MB of storage for free. Premium plans start at $9 per month.

Assembla is more of a team collaboration website, but it features hosted SVN as well as bug tracking, ticketing and other collaboration features. Plans start at $2 per user per month.


Subversion Community Websites Link

Looking for answers to your SVN-related questions? Check out some of these community websites. Many have forums, mailing lists, training centers and more to get you primed for SVN.

If you need help on a Subversion-related topic, look no further than SVNForum. SVNForum has a community of over 14,500 members, posting questions and answers on virtually any topic.

CollabNet is from the same organization that manages the SVN project, so it provides training resources and means of connecting with CollabNet’s SVN engineers.


Subversionary has a bevy of tutorials and articles in the areas of configuration and working in most environments.

Subversion Books Link

If you want a few books to browse offline, then here are a few titles sure to help you understand all things SVN.

Subversion in Action58
While it may be a tad dated for a technology book, Subversion in Action provides an excellent overview of how to use SVN in everyday scenarios. It is an excellent starter book for SVN newbies.

Subversion In Action59

Practical Subversion60
Practical Subversion, Second Edition is authored by two Subversion project contributors and is the most up-to-date book on the version control system. You can preview the first chapter in Google Preview61.

Practical Subversion62

Pragmatic Version Control Using Subversion63
Part of the critically acclaimed Pragmatic Programmers64 series.


Subversion Version Control: Using the Subversion Version Control System in Development Projects66
Perfect for Web developers who want to learn more about SVN.


SVN Articles Link

Given SVN’s popularity, it’s no surprise there are plenty of tutorials and articles on how to wield it. Here are a few of the best.

Subversion for Web Projects68
Many Web developers still don’t use some kind of version control for projects. Here’s an informative article on how Web developers can get started with SVN in a local environment.

Making the Jump to SVN69
A somewhat dated but still highly relevant article on the benefits of SVN, complete with an in-depth overview of how SVN works.

Keeping Your Life in Subversion70
Go beyond backing up your work to backing up everything on your computer with SVN.

How to Set Up a Personal Home Subversion Server71
Lifehacker has a great article from 2006 giving a thorough rundown of how to get SVN rolling on your home machine for personal use.

How to Set Up Subversion and websvn on Debian72
HowtoForge has an excellent tutorial on how to get running with the popular Linux distribution Debian73.

Mirroring a Subversion Repository74
This guide helps you create a Subversion utility, “svnsync,” that allows you to clone a read-only repository.

Configuring Subversion to Use a Proxy Server75
Sometimes the only work environment in which you can set up SVN is on a proxy server. This article explains the extra bit of manual configuration needed to do that.

Maintaining an SVN Mirror Directly from Git76
While Git is becoming more popular every day, many developers are still most comfortable with SVN. If you run a Git repository, you can create a read-only SVN repository from it.

Top 10 Subversion Tips for CVS Users77
There was a time when CVS was the most used revision control system. Even though SVN has taken the reigns, some CVS users out there might benefit from learning the reasons why one would switch to SVN.

Mergeinfo – Understanding the Internals78
Everything you ever wanted to know about SVN 1.5’s important mergeinfo command.

Do you use version control? Link

Footnotes Link

  1. 1 http://en.wikipedia.org/wiki/Revision_control
  2. 2 http://code.google.com/
  3. 3 http://git-scm.com/
  4. 4 http://thinkvitamin.com/features/design/subversion-for-designers/
  5. 5 http://www.abbeyworkshop.com/howto/misc/svn01/
  6. 6 http://ariejan.net/upload/svncheatsheet-1.0.1.png
  7. 7 http://ariejan.net/upload/svncheatsheet-1.0.1.pdf
  8. 8 http://svnbook.red-bean.com/en/1.5/index.html
  9. 9 http://svnbook.red-bean.com/en/1.5/index.html
  10. 10 http://svn.collab.net/svn-doxygen/
  11. 11 http://svn1clicksetup.tigris.org/
  12. 12 http://tortoisesvn.tigris.org/
  13. 13 http://tortoisesvn.tigris.org/
  14. 14 http://www.zennaware.com/cornerstone/
  15. 15 http://pysvn.tigris.org/
  16. 16 http://www.syntevo.com/smartsvn/index.html
  17. 17 http://www.syntevo.com/smartsvn/index.html
  18. 18 http://www.versionsapp.com/
  19. 19 http://beanstalkapp.com/
  20. 20 http://www.versionsapp.com/
  21. 21 http://subclipse.tigris.org/
  22. 22 http://subclipse.tigris.org/
  23. 23 http://subcommander.tigris.org/
  24. 24 http://fsvs.tigris.org/
  25. 25 http://www.syncrosvnclient.com/
  26. 26 http://www.syncrosvnclient.com/
  27. 27 http://scplugin.tigris.org/
  28. 28 http://www.xsteve.at/prg/vc_svn/index.html
  29. 29 http://www.qaware.de/qasvn/QAsvn.html
  30. 30 http://en.wikipedia.org/wiki/Integrated_development_environment
  31. 31 http://subclipse.tigris.org/
  32. 32 http://www.eclipse.org/
  33. 33 http://subclipse.tigris.org/
  34. 34 http://ankhsvn.open.collab.net/
  35. 35 http://www.microsoft.com/visualstudio/en-us/default.mspx
  36. 36 http://ankhsvn.open.collab.net/
  37. 37 http://www.visualsvn.com/visualsvn/
  38. 38 https://www.opends.org/wiki/page/ConfiguringSubversionToIgnoreIDEProjectFiles
  39. 39 http://trac.edgewall.org/
  40. 40 http://trac.edgewall.org/
  41. 41 http://warehouseapp.com/
  42. 42 http://warehouseapp.com/
  43. 43 http://www.websvn.info/
  44. 44 http://insurrection.tigris.org/
  45. 45 http://www.polarion.org/index.php?page=overview&project=svnwebclient
  46. 46 http://code.google.com
  47. 47 http://code.google.com
  48. 48 http://cvsdude.com
  49. 49 http://www.beanstalkapp.com
  50. 50 http://www.beanstalkapp.com
  51. 51 http://unfuddle.com
  52. 52 http://www.assembla.com/
  53. 53 http://www.assembla.com/
  54. 54 http://svnforum.org
  55. 55 http://open.collab.net
  56. 56 http://open.collab.net
  57. 57 http://www.subversionary.org/
  58. 58 http://www.manning.com/machols/
  59. 59 http://www.manning.com/machols/
  60. 60 http://www.apress.com/book/view/1590597532
  61. 61 http://www.apress.com/book/preview/9781590597538
  62. 62 http://www.apress.com/book/view/1590597532
  63. 63 http://www.pragprog.com/titles/svn2/pragmatic-version-control-using-subversion
  64. 64 http://www.pragprog.com
  65. 65 http://www.pragprog.com/titles/svn2/pragmatic-version-control-using-subversion
  66. 66 http://www.amazon.com/Subversion-Version-Control-Development-Projects/dp/0131855182/ref=pd_sim_b_15
  67. 67 http://www.amazon.com/Subversion-Version-Control-Development-Projects/dp/0131855182/ref=pd_sim_b_15
  68. 68 http://athleticsnyc.com/blog/entry/on-using-subversion-for-web-projects
  69. 69 http://www.macdevcenter.com/pub/a/mac/2004/08/10/subversion.html
  70. 70 http://www.onlamp.com/pub/a/onlamp/2005/01/06/svn_homedir.html
  71. 71 http://lifehacker.com/software/subversion/hack-attack-how-to-set-up-a-personal-home-subversion-server-188582.php
  72. 72 http://www.howtoforge.com/debian_subversion_websvn
  73. 73 http://www.us.debian.org/
  74. 74 https://www.opends.org/wiki/page/MirroringASubversionRepository
  75. 75 https://www.opends.org/wiki/page/ConfiguringSubversionToUseAProxyServer
  76. 76 http://blog.fallingsnow.net/2007/08/17/maintaining-an-svn-mirror-directly-from-git/
  77. 77 http://www.onlamp.com/pub/a/onlamp/2004/08/19/subversiontips.html
  78. 78 http://www.collab.net/community/subversion/articles/merge-info.html

↑ Back to top Tweet itShare on Facebook

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

  1. 1

    interesting, thanks for this great article

  2. 2

    I use Subversion all the time, mostly for college coding projects, but I find it to be an awesome resource. Thanks for posting this!

  3. 3
  4. 4

    Hmmm nice one.Very useful.Keep up the good work.

  5. 5

    +1 for Unfuddle
    +1 For TortoiseSVN
    +1 for VisualSVN.

    Also, VisualSVN is not just for Visual Basic — it’s for Visual Studio (including other languages, like C#)

    Also, (to the person who mentioned it) Mercurial is a completely different version control system. This article was solely based on Subversion.

  6. 6

    Great! I’d love to see an post like this on Git as well.

  7. 7

    Sucks that you didn’t mention the best free SVN host I’ve ever found:


    1.5 GB worth of space…free. Unlimited number of accounts, and features being added all the time. Quite top notch if you ask me :)

  8. 8

    not only publishing great articles… now you’re reading my mind!

  9. 9

    Redmine has a reasonable full-featured SVN browser as well as integration with issue tracking and project management.

    More info: http://www.redmine.org/
    Easy installer: http://bitnami.org/stack/redmine
    JumpBox: http://www.jumpbox.com/app/redmine

    I’ve used the Bitnami Stack and done a regular install. It’s not completely painless to setup, but it’s pretty awesome once it is!

  10. 10

    There’s another free(!) SVN hoster: http://xp-dev.com

    I use it (switched from assembla when they began to charge for the service) and I’m happy with it.

  11. 11

    @Derek Mounce: Do tell! TextMate has a Git bundle, but it’ll be nice to have a standalone Git client. (Not that I’m complaining much about the command line, but still…)

  12. 12

    Oh and btw: NetBeans has also very good versioning plug-ins.

    I would be happy to see a post regarding the great possibilities of automatic deployment using SVN + x.

    For example with RoR and Capistrano



  13. 13

    Wouter Van den Neste

    March 10, 2009 1:33 pm

    I’m using subversion for quite a while now and I have to admit it’s the best decision I’ve made in a while (when It comes to development). The only thing that’s a little annoying is when you include photoshop PSD’s in your project.

    Anyway, my conclusion is that every IT-professional should use SVN. Even if your only a one man team.

  14. 14

    the complete ide for web development on mac – Coda has integrated fantastic support for SVN, really no sense to use separate editor and svn client, since Coda has also integrated sftp, ssh, preview, help, etc etc

  15. 15

    Didn’t use SVN before starting a full time developer position. They use it in-house for everything so I’ve followed suit and started using it at home, great way of having backups of everything!

  16. 16

    Subversion was a nice replacement for CVS, but it is now time to move to DSCM (git, bazaar, mercurial, you choose).

  17. 17

    i’ve found recently InDefero, which is a good, although young, online repo browser (php-based). it actually eats some git and mercurial for breakfast too, but that’s not really the main topic here.
    On the matter of IDEs, Netbeans SCC support is really great. And It’s shame that Komodo comes with it only with its IDE version (I’m still praying for a brave, fearless and insomniac developper to implement it for the “Edit” one as an extension).

  18. 18

    I fail to see how svn is a good source controll for graphics files.
    Have anyone had good experience with this?

  19. 19

    What about Coda as a Mac client?

  20. 20

    Nice detail there, SVN makes my life a whole lot easier!
    By the way…. you have the description of the SVN Repository Browsers section in the wrong place, surely should be straight after the title, not after the first example?

  21. 21

    Anyone considering SVN for design work or web development should check out PixelNovel Timeline(www.pixelnovel.com) – it’s a Photoshop plug-in that works as a SVN client. It also comes with web storage that has GUI for browsing PSDs online, so it’s much very convenient for design-related projects

  22. 22

    I’ve been with SpringLoops for a while now and love them. Good alternative to BeanStalk.


  23. 23

    Henrik Kjelsberg

    March 10, 2009 4:17 pm

    I think more and more people will leave svn and go with scm´s as mercurial, git or bazar ones their clientside is as simple and well known. From my point of view, both cvs and svn are outdated.

    Would be nice to see articles like this one on these other systems. Anyone?

  24. 24

    Would like to watch a screencast on version control. Is there one available anywhere?

  25. 25

    Russell Heimlich

    March 10, 2009 5:09 pm

    I’m a big fan of SmartSVN on both Windows and Mac. Great compare tool to visualize the changes from version to version.

  26. 26

    @hannah . there’s gitx if you really want a gui. it’s at github. i’ve always found it easier to do the command line because the commands are so short, though.

    i’m a programmer/wannabe designer. i had no idea designer used SCMs too.

    +1 for a git intro. svn is only a ‘standard’ as long as people use it, and more and more are switching over to git all the time.

  27. 27

    Dustin Townsend

    March 10, 2009 6:15 pm

    I setup git not to long ago and I have an account at github. I think it works well.
    I have used SVN in the past and I think it is great too.

  28. 28

    Jean-Philippe Doyle

    March 10, 2009 7:26 pm

    Having work both SVN and Perforce, the latter is commercial but does a way better overall job with great features such as multiple pending commit and easier branch management and integrations, user workspaces, etc.

  29. 29

    Why oh WHY was RapidSVN not mentioned here??
    It’s actively developed, cross-platform and free. The developers are very active and respond quickly to requests, bug reports and general use questions.


    Boo on SM for not reviewing this!

  30. 30

    For those who are interested, we wrote an article about how to work in Mantis and SVN…
    Working with Mantis and SVN.

    Also a Dreamweaver SVN client is missed from the article, you can check it out …
    SVN for Dreamweaver Windows and Mac

    Hope this help, thank you.

  31. 31

    I have sort of tried svn a couple of times using VS IDE.

    Most of my solutions consist of multiple projects, some projects shared across solutions. I have always found it too hard to set up.

  32. 32

    Versions is unique because it syncs with the online SVN repository Beanstalk.
    Excuses me…? You are just plain wrong here, this is not unique of Versions. Perhaps the only thing different is that they have incorporated a button in their UI to create a repository at beanstalk if you don’t have hosted SVN yourself.
    Another thing completely missing from the article is the inline diff viewer in Cornerstone. Especially usefull for images:-) I prefer Versions over Cornerstone though..

    Too bad this is yet another article with no intrinsic value that links together some information in a very non-uniform way.

  33. 33

    These are exactly the information I was looking for!
    Thank you very much for the detailed and useful article.

  34. 34

    Andreas Sumerauer

    March 11, 2009 1:03 am

    Don’t forget SourceForge.net. While traditionally they are known as CVS hoster. they have opened up already a while ago and support also SVN and GIT for source control.

  35. 35

    You have forgotten to mention Subversive – the Eclipse Team Provider under the Eclipse umbrella. IMHO it seems not so stable as Subclipse.

  36. 36

    Great tut.

  37. 37

    Cant Believe Fisheye didn’t make the list! http://www.atlassian.com/software/fisheye/

  38. 38

    adsfaveafv<c sdfgasdf brfghbgeragf

  39. 39


    I can’t get at the essence of SVN – and I’ve tried. What is it for exactly? Is it essentially that you put all of the files in your project in one of these directories and it keeps a backup? How do you ‘commit’ a change?

    An example might be useful. Now, I develop on my localhost, and upload to the server after. Lets say tonight I make a CSS change and upload it to the server. How does SVN let me revert back to before I made that change? That’s the part I can’t understand. And how does it keep track of 10 nights of changes? Can I revert back to two weeks ago? Can I keep all the changes I have now, but revert back a few lines from a few weeks ago?

    Really like some practical help on this one!

  40. 40

    svnrepository.com is another hosted repo service; they integrate trac with svn, nice writeup in “Leveraging Drupal” by Victor Kane

    Most of the clients (except for smartsvn) have weak or no support for complex merging. I’m hoping Coda improves merging support soon so I don’t need two clients.

  41. 41

    Very nice round-up! And for all the people new to Subversion, we have a great article on The Web Squeeze. Have a look An Introduction to Subversion and hope it help some of you guys new to this whole thing.

  42. 42

    Thank you very very much. I googled a lot for something like this and now its on one of my favourite homepages! Thanks!

  43. 43

    I’ve used TortoiseSVN during a web dev project with some friends, and it works pretty well. But every subversion app has its downsides, and can almost become a burden (not to say it isn’t a good thing to use though)

  44. 44

    Now this is weird. The day I get start to set up a project using SVN, this article was being written. Yes it’s a happy little coincidence, but still weird all the same. I’m going to take the time to dig through some of these and see what best suits my needs.

  45. 45

    Another helpful SVN link (http://www.pchenry.com/Default.aspx?tabid=36&EntryID=67) as well as this one for setting SVN up for sharing code externally (http://www.pchenry.com/Home/tabid/36/EntryID/94/Default.aspx).

  46. 46

    @Terry – yeah I’m in the same boat.

    Can I use subversion to keep my wordpress blogs all up to date with very little effort? A guide on that topic might make for some good content.

  47. 47

    @Terry Sutton

    In fact you keep you project directory as it is, and you “mirror it” in a svn directory. This directory could be on your local machine, or distant, and this directory will be served by the svn server.

    As you work on your project, you do “commits” on regular basis. Is up to you to choose when you have to commit things. This will send the things which you modified since the last commit to your SVN server, and this server will do a “snapshot”.
    In fact, each time you commit, the server do a snapshot of your project and give a number to this snapshot which is called ‘revision number’. So the server host each of this backup (but use some diff technologies which means that it will save only the things which have been modified since last commit, not the entire project at each commit)

    So the svn server knows how your porject was at each point in time called ‘revision’. You could revert the entire project to a revision number you choose (or the last one) or just a file (and you could revert another file to an older revision etc…)

    to answer precisely :
    Lets say tonight I make a CSS change and upload it to the server
    How does SVN let me revert back to before I made that change?
    with ‘svn up -r $revisionnumber’

    And how does it keep track of 10 nights of changes? Can I revert back to two weeks ago?
    It keeps tracks because on each morning you did a commit to the svn server to create the ‘snapshot’
    ‘svn commit’

    Can I keep all the changes I have now, but revert back a few lines from a few weeks ago ?
    Yes with ‘svn up -r $revisionnumber –depth $fileordir’

    See this like a time machine which is synced only when you (or others developpers workingon the project) choose (with the commit).
    We call the svn directory which act as the server the ‘repository’ on you local project your ‘working copy’. For one repository you could have any numbers of working copies (in fact at least one for each developper).

    SVN helps for developping, but when it comes to deployement the best things to do in my opinion is to checkout the project in a temps directory on your local machine, set up everything you need for the deployement server (db log and pass for example) and rsync it to the deployement server.

    In fact you could also ‘checkout’ (the checkout is like the ‘first download’ of the project from the repository, it initialise your working copy) the project in the directory served by the webserver. But be aware to exclude some server-specifics configuration files (like db log/pass)(so each time you’ll ‘svn up’ on the webserver the config file will not be synced with empty db log/pass).

    There are lots of reference to advanced command for subversion (like the file exclusion etc.) on the net .

    Short answer: Yes you can do all you asked for :)

  48. 48

    TortoiseSVN + VisualSVN is awesome.

    Also, please update the VisuaklSVN reference because
    (1) it is for any language
    (2) it integrates with Visual Studio (and uses TortoiseSVN)
    (3) it isn’t from Microsoft

    Great article otherwise.

  49. 49

    Great, great article full of resources. You guys dropped some names of OS X Subversion clients I’m ready to go try!

  50. 50

    @Terry Sutton

    Adding to what Gehasia wrote, if you are nervous about the command line you can do all you ask for just as easily through menus and GUIs with clients like TortoiseSVN.


↑ Back to top