Collaborate and Connect with Subversion

by Ryan Irelan

43 Reader Comments

Back to the Article
  1. I’ve got to say that I’m totally digging git.

    It took me a while to get into but once you’ve got the hang of it, it beats the pants off subversion.

    Copy & paste the code below to embed this comment.
  2. Do you ever wish you could search your entire SVN repository using just a web browser?

    “Atlassian”:http://atlassian.com create “FishEye”:http://atlassian.com/fisheye for not only making your svn repository easily viewable, but also enables full text search across your entire repository. 

    To make Code Review easier for distributed teams have a look at “Crucible”:http://atlassian.com/crucible as well. It is an extension to FishEye which allows Code Review to get done with a minimum of fuss.

    Copy & paste the code below to embed this comment.
  3. If you want to use version control like this, i.e. for a wide range of people with varying skill level, then you need an option which is user-friendly, file-friendly and windows-friendly.

    I personally use Bazaar for my own work. I was sold on it when I asked a colleague to install it, and on checking with her half an hour later she had it installed (on windows) and all her files checked in to a repository. She had never used version control before, and she had previously spent half a day unsuccessfully trying to install Subversion. Also, Bazaar has some really unique features like an attractive 1-page quick start card (which really is all you need to get started) and a website that actually makes you feel welcome.

    Subversion has a lot of problems. I’m not getting into the centralized/decentralized debate, but amongst other things Subversion wreaks havoc with bundle files by littering them with .svn directories everywhere. What Subversion does have, which in this scenario is invaluable, is a wide range of GUI tools. I hadn’t heard about Versions before, that looks very useful.

    As far as Git is concerned, it is a completely unrealistic option for non-programmers. The community is positively hostile to anyone who doesn’t immediately acknowledge the absolute superiority of Git, and that is never a healthy attitude.

    As a developer who uses and contributes to open source software, I have to be conversant with a wide range of version control tools. I use Subversion/SVK, Git and Mercurial on a weekly if not daily basis. I would like to see the GUI tool market and the version control hosting market move towards recognizing this reality, and be vcs-agnostic on the back end.

    For now, I have to admit that the GUI support makes Subversion the most realistic option for this sort of usage, with a user-friendly decentralized system like Bazaar a close second if your designers are willing to learn to use the command line.

    If you don’t find an option which works for everyone, you can always implement version control yourself and just check in the files which suppliers/designers send to you.

    Copy & paste the code below to embed this comment.
  4. Git crushes subversion if you’re really using something for version control and not just ‘sharing’.  The ability to branch/fork/merge with git has been made so trivial that i actually do it now.  Anyone ever stuck in subversion merge hell will testify to what a godsend this is.  Seriously, if you’re just starting in to this, go for GIT.  Check out github if you want an easy way to get a hosted repo online.

    If you want to use svn as the cloud repository, you can still use git locally to manage changesets (i recommend).

    SVN is a fantastic bit of software, don’t get me wrong.  It has been quite a workhorse and made many an project easier to manage.  However, it is time to pass the baton.

    Copy & paste the code below to embed this comment.
  5. Thanks to everyone for their comments so far.

    “Zac Davis”:http://alistapart.com/comments/collaboratewithsubversion?page=1#4 Yes, writing workflows is an excellent example of other uses of SVN (and version control systems in general).

    In general, I’m wary of SVN vs. Git shootout, not only because that’s been done so many other places, but because it isn’t what the article is about. I’d be interested in hearing any experiences people have implementing version control in their small team of designers.

    Copy & paste the code below to embed this comment.
  6. I agree that introducing version control system is a great improvement for you work. I recently even made a step forward and let my client access the repository. He can see the changelog, the commit comments and the dates — I think this transparency helps to build trust, even when the diffs themselves are not understandable.

    As for which one you should use — hey, use whatever you are most comfortable with. Personally I love Mercurial, as it lets me to create and share a new project almost instantly—either by starting a temporary web server with ‘hg serve’, or by using the cgi application they ship. It also works well on windows and has TorrtoiseHG for those allergic both to WWW and Console. Oh and you don’t have to manage your repository — you just start a separate one for each project, move them around as whole directories, clone and merge when needed — much easier than trying to wrap your mind around branches and permissions and whatnot.

    Copy & paste the code below to embed this comment.
  7. It took me a few goes to get my head round version control, I work alone, building websites, and keeping track of all the different versions – local, staging and live servers, was getting tedious.

    I tried SVN a couple of times, and eventually settled on a workflow that makes sense, but only really adopted it properly when Versions came out for OS X.  Funnily enough, shortly after Cornerstone was released and it’s much better. (one or two minor niggles).

    I’ve adopted a local repository and ftp’ing exported code at the moment, but ultimately will have a remote repository on my staging server, which will have a working copy locally for testing and on the staging server for client approval – this will allow other people to assist, by checking out from the staging server.

    It all makes sense now.

    I imagine tools like Versions and Cornerstone will make Subversion more widely used.  When Git and Mercurial have the same easy GUI’s then they too will be on my list.

    Copy & paste the code below to embed this comment.
  8. a perfect world indeed. a workflow without the confusion. i do believe that we are going to give it a scrutiny.

    Copy & paste the code below to embed this comment.
  9. While back end developers have been using version control for a long time now and may debate the pros and cons of the various version control systems, life in the trenches of front end web design and development (especially in smaller design studios and ad agencies with fast turnarounds) for the most part relies on much simpler and error prone methods of collaboration.

    Our studio has recently introduced SVN into our workflow and I can say that it has made a huge difference to the efficiency and an even bigger improvement in reduction of the amalgamation and release stress even in the smaller jobs.

    Hopefully this article will prompt more smaller development houses to adopt these excellent tools!

    Copy & paste the code below to embed this comment.
  10. Ryan, Thanks for the reference to Beanstalk. Our main goal when we started was to make the adoption process painless, this way people who might not use Subversion (or version control) could easily jump in without worrying about servers and installation.

    At the same time, even Subversion has a learning curve. Most of the effort starts with the Subversion client and understanding the workflow. So far, the response to our integration with Versions has been great. We’ll continue to reduce the barrier to entry so designers, writers, and anyone else can realize the benefits to version control.

    Copy & paste the code below to embed this comment.
  11. You listed Version which is a proprietary software in beta version….

    SvnX is a great open source solution and definitely usable.

    http://www.lachoseinteractive.net/en/community/subversion/svnx/

    I would have expect that ALA proposed open source alternatives to proprietary ones (at least both).

    Copy & paste the code below to embed this comment.
  12. Thanks for the note on SvnX, Hadrien. I do know about it and that it is open source, however, in my use—and by some of the team at Airbag—we found it extremely difficult to use. In fact, that’s the reason I just had the people I work with learn the small handful of SVN commands on the CLI because it was actually easier than trying to navigate SvnX.

    There was no conspiracy to eliminate open source software, I just can’t recommend it as a application to use. Versions (and now Cornerstone) are much better choices on the Mac. However, I still recommend people first learn how to use SVN on the CLI. I feel it offers a greater understanding of how SVN works.

    Copy & paste the code below to embed this comment.
  13. I’m a ‘back-end’ developer and use SVN (having moved from the evil Microsoft VSS).  Personally after getting my head around a few concepts I’ve never had any issues with it (not sure why there are lots of moans about merging problems – it’s really quite good).  Choosing a version control system shouldn’t be a big beauty contest – if it works (and svn does a fine job) stop comparing it with all of the other shiny and new version control systems.

    To the point of my post – at work I use “Eclipse”:http://www.eclipse.org/ for Java development with “Subclipse”:http://subclipse.tigris.org/ which builds version control right into the editor.  You can browse repositories, do diffs and pretty much anything you can do with Versions or Tortoise.  It’s excellent.  At home I also use “Aptana”:http://www.aptana.com on a mac (as I do more script work at home) which is built on eclipse, so I can use the same Subclipse plugin at home too.  Eclipse/Aptana are written in Java so run on macs and PC’s and are open source – so it’s a great editing tool all round for me.  It’s flexible too – you can install eclipse and get an Aptana plugin or just install Aptana on its own. I highly recommend it for back-end server-side development and front-end web development needs and especially recommend it for simple SVN integration.

    Copy & paste the code below to embed this comment.
  14. Ok, I understand your point on SvnX and I agree with learning people to use svn CLI to better understand Subversion.  (Anyway, my comment was a bit subversive :D )

    I do also use Eclipse which is to my opinion one of the best IDE ever which integrates all languages and tools (because of a pluginable architecture).

    Eclipse (with “Aptana”:http://www.aptana.com/docs/index.php/Plugging_Aptana_into_an_existing_Eclipse_configuration , “Subclipse”:http://subclipse.tigris.org , “Flex”:http://www.adobe.com/products/flex/ , “Sysdeo”:http://www.eclipsetotale.com/tomcatPlugin.html , “Mylyn”:http://www.eclipse.org/mylyn/ plugins) permits me to code front-end (AJAX/HTML/Javascript/Flex/AS3) and back end (Java EE/Tomcat/PHP), linked with “scm”:http://en.wikipedia.org/wiki/Software_configuration_management (subversion – “trac”:http://trac.edgewall.org/ – “bugzilla”:www.bugzilla.org/ – “Jira”:http://www.atlassian.com/software/jira/ ), and also debug the whole application (backend + frontend) in the same environment which is one of several added values (like being a platform independent software).

    BUT, it is quite developer oriented and I would not expect from a web designer to be able to use such a tool in a natural manner.

    Anyway, thank you for the article on subversion. I know so many web agencies which work without any versioning tools. At end of projects, there are always file like
    final_4_f.new.psd and it always got on everybody’s nerves to search for the good version.

    Questions :
    Do they teach about versioning in web design schools ?
    Don’t you think that any computing related studies should include a course on versioning and how to work better/faster ?

    Copy & paste the code below to embed this comment.
  15. Questions : Do they teach about versioning in web design schools ? Don’t you think that any computing related studies should include a course on versioning and how to work better/faster ?

    That’s a great question. I didn’t go to school for new media or web design, so I don’t know. My guess would be that most schools don’t teach it. But I’d encourage others to chime in on that.

    I think a course on workflow would be helpful and that should include talking about version control.

    Copy & paste the code below to embed this comment.
  16. I think a course on workflow would be helpful and that should include talking about version control.

    +1
    That is what I should have write :)
    Learning versioning without any workflow concerns is irrelevant.

    Copy & paste the code below to embed this comment.
  17. one of the main advantages of subversion for me is that it is well integrated with most tools that i use:
    Editor: BBEdit has built in svn-support so I can commit, diff, merge and view logs from right within the editor. The same holds true for eclipse of course.
    Project mangement: we work with freelancers from all over the world (germany, india, italy, us) for coding and webdesign (yes we are one of those small web-outfits…) and use trac for managing our projects. Trac is also very well integrated, so you basiclly have one website per project where you can see all the tickets that are being worked on, and a very convenient view of the project’s history in the codebase. All svn commits are neatly listed and displayed with all the code changes instantly visible.
    This setup (svn, trac, eclipse, other editors) has turned out to be a very successful workflow for a number of projects from small to large in the past year so I can highly recommend svn even while it may not be bleeding edge. It just gets the job done. Also: al of our freelancers already used and knew it, so no problems with integrating new members into projects.

    Copy & paste the code below to embed this comment.
  18. I’ve switched all my personal stuff to mercurial – when I’m away from internet, it’s nice to still be able to commit changes in my local working repo, then push them back to my main repository when I get back to the world.

    Having come from RCS -> CVS -> SVN, the fact that most Mercurial commands have the same syntax as the SVN ones makes me happy.

    Copy & paste the code below to embed this comment.
  19. I used SmartSVN for the Mac for years, until I switched over to git. It has a good interface and wizard for connecting to new repos. If you are using git, I highly recommend using GitHub.

    Copy & paste the code below to embed this comment.
  20. http://jadeohlhauser.com/2008/c_vs_v/

    Here’s my thoughts on the two new Subversion GUI clients for Mac.

    Copy & paste the code below to embed this comment.
  21. There’s a TextMate bundle called svnmate that integrates all the Subversion functionality into the world’s best text editor. Very very useful.

    Although after reading these comments I may look into Git; sometimes I’d love to be able to branch, and Subversion either can’t do it, or (more likely) doesn’t make it easy enough for me to figure out.

    Copy & paste the code below to embed this comment.
  22. Here’s my thoughts on the two new Subversion GUI clients for Mac.

    Thanks for the link, Jade. Great side-by-side.

    Copy & paste the code below to embed this comment.
  23. I find it funny all those discussions about which SCM system is best.

    At my company we use Subversion… and the reason was pretty simple… it can be accessed in many different ways (either through the command line, through a specialized GUI or even hidden behind a “Shared Folder” under windows or Mac).

    But the biggest reason why I think Subversion is great as a collaboration tool is that it allows anyone to use it (heck, even my mom was able to use it after a 10 minutes training and she’s pretty “un-literate” when it comes to computers)

    If you’re using it as the collaboration tool for your organization you have to stop thinking about source code and developers and start thinking about graphical objects, PDFs, PSDs and graphical designers, project managers and copywriters…

    From that standpoint, SVN is still the best in my mind.

    Copy & paste the code below to embed this comment.
  24. For those of you who prefer to work with PHP rather than ruby, you can find a script that will post to Basecamp here.  Not as difficult to set up as it first looks.

    Copy & paste the code below to embed this comment.
  25. For those of you who prefer to work with PHP rather than ruby, you can find a script that will post to Basecamp “here”:http://www.whompbox.com/?p=5 . Not as difficult to set up as it first looks.

    Sorry for the double post, please remove the badly formatted one above.

    Copy & paste the code below to embed this comment.
  26. Have any of you tried out “DropBox”:http://www.getdropbox.com/ ? It seamlessly syncs a special folder and all of its subfolders with all the computers you connect to it via amazon’s s3 servers.

    It’s really amazing, you can designate collaborators for specific folders, and it has version control. All files are saved locally to your hard drive, except previous versions.

    Copy & paste the code below to embed this comment.
  27. I use Subversion for all my projects, not only with clients and sub-contractors but also with some of my own stuff.

    Lately I’ve started using Subversion to work on some of my longer blog articles, that way I can continue writing from my desktop or laptop and keep everything at hand in my server.

    After reading the comments about git and bazaar I think I’ll take a look at those options.

    Copy & paste the code below to embed this comment.
  28. While the basic points about needing a version control system are sound, subversion itself is obsolete. The world has moved on to distributed version control systems like git (or perhaps mercurial).

    Certainly you wouldn’t start a new project using subversion — it’s only appropriate for legacy setups where making a switch to a modern setup needs to be delayed for some reason.

    Copy & paste the code below to embed this comment.
  29. While the basic points about needing a version control system are sound, subversion itself is obsolete. The world has moved on to distributed version control systems like git (or perhaps mercurial).

    Certainly you wouldn’t start a new project using subversion — it’s only appropriate for legacy setups where making a switch to a modern setup needs to be delayed for some reason.

    Copy & paste the code below to embed this comment.
  30. “As the subcontractor’s employer, you have every right to stipulate deliverables, the tools used, and how and when the work gets done. Your subcontractors will appreciate a solid workflow and know that you have your act together.”

    I suspect this statement would not stand up within a court of law, at least not in states like California which distinguish between the rights of employees and those of contractors.  Even if a sub contractor were to sign a contract surrendering his/her rights about how work gets accomplished, I’m not sure if that contract would be enforceable. 

     

    Copy & paste the code below to embed this comment.
  31. There is no software for mac to replace a PUTTY and SVN Tortoise – combination (Yes, I have searched in Google and I find all this SVNX and others to be really unusable). Plus, I find SVN itself extremely hard both to install and to manage. From my experience I can say that using SVN doesn’t worth the time you’ll have to spend to get it working and to keep fixing it.

    Copy & paste the code below to embed this comment.
  32. For those of you that feel SVN is obsolete, please look into VisualSVN Server as well as TortoiseSVN—these free tools make SVN very very easy.

    Copy & paste the code below to embed this comment.
  33. You can just head to http://xp-dev.com and get hosted subversion repositories that work with Basecamp out of the box, and there’s a free plan as well.

    Copy & paste the code below to embed this comment.