The version control system known as Subversion brings great power, and with great power comes great hassle and complexity and annoyance. At least, that’s been my experience — but no longer. Thanks to the imaginatively-named Versions, Mac users have a graphical Subversion client that does things ‘the Mac way’: Subversion just works.
– SVN client for MAC OS X – Versions offers the simplest Subversion on the Mac. In their own words, “Thanks to its clear-cut approach, you’ll hit the ground running”. It is easy to use. $39 GBP (around $64 USD at today’s exchange rates). A commercial Git client should support your work-flows. You can customize SmartGit in various ways: Preferences for Merging, Rebasing; Layout of certain views, External tools, External or built-in Compare or Conflict Solver tools, Keyboard shortcuts, Toolbars, Syntax coloring. If I needed to use a standalone SVN client I would definitely purchase SmartSVN even though the price tag is a bit hefty at $80. Which is why I prefer using the Subversive plug-in for ColdFusion Builder. Of course OS X already has command line SVN commands available at your fingertips if you so choose to use them.
What is Subversion?
In case you haven’t encountered version control systems before, they provide a way for multiple contributors to work together on a single project while:
- keeping track of all the revisions to a document or set of documents,
- coherently merging the changes made by different contributors working on the same document, and
- retaining the ability to ‘roll back’ changed documents to earlier versions.
Importantly, ‘documents’ can mean almost anything, from chunks of computer code to chapters in a book (and there’s no requirement for the underlying data to be textual in nature). A version control system often resides on a central server somewhere, with anywhere from one or two to hundreds or even thousands of contributors able to work on a project in parallel, with the version control system seamlessly handling the changes they make and keeping track of everything so any given change can be reversed back to an arbitrary point in time.
Subversion is one of the most widely used version control systems and will be recognized by many programmers, researchers, academic authors and others. This review isn’t intended to introduce or explain Subversion itself, but you can read more about the system’s fairly amazing capabilities with the free (and again imaginatively named) book Version Control with Subversion. In the remainder of this review, I’ll assume at least a rudimentary knowledge of what Subversion is and why you might want to use it.
Why Use a Graphical Subversion Client Like Versions at All?
If you really want to, you can accomplish everything that is possible in Subversion just by using the command line, typing arcane commands like svn resolve --accept working example.txt.
But in my experience, working with Subversion by typing individual commands is an experience in finickiness and a great way both to discover how many mistakes I can make in a short period of time and to notice just how long it takes me to figure out how to do something simple. Of course, this says much more about me than about Subversion itself: it says that I’m just not personally that inclined to learn the ins and outs of a low-level command line interface for a system which I don’t actually use all that much (more on that in a moment), particularly where working from the command line doesn’t net me any appreciable advantage over the available alternatives.
One of those alternatives is Versions: if you lack the inclination or motivation to learn the command line interface, a graphical interface like that provided by Versions is the only way to fly. Here’s an example of the iTunes-style Versions window, as of version 1.0.6, with the left-hand ‘sources’ pane showing bookmarks to the Subversion repositories for some of the WordPress plugins we use here at CounsellingResource.com:
Download SlikSVN Subversion Client
This graphical front-end to Subversion works exactly like you would expect a Mac interface to work: move items by dragging and dropping, copy items by option-dragging and dropping, open by double-clicking, Quick Look by selecting and hitting space, see additional information by hitting command-I, etc. Just a single keystroke is all that’s needed for any of the following Subversion commands: update, commit, add, revert, diff (which gets handed off to an external editor), etc. Likewise, the timeline, file browser, and transcripts are all just a keystroke away. The blame function doesn’t merit a keyboard shortcut, but a single click on the toolbar shows, line-by-line, who made what change and when. Want to copy everything in trunk to a new tag? Option-drag and drop trunk to tag, name it, and you’re done. All this is at once completely underwhelming (after all, isn’t that how the Mac always works?) and totally amazing (if you have ever struggled with finicky command line alternatives for these same simple manoeuvres).
Don’t get me wrong: I’m not a command line neophyte by any means, and in fact the plugins listed in the screenshot above were written by me, so I don’t shy away from getting my hands dirty with programming tasks. But why would I want to spend any more hours of my life memorizing arcane commands if software like Versions can be at my beck and call, waiting to do the job with a combination of keyboard shortcuts and simple mousing around?
In addition, it’s worth noting that while many text editors (e.g., BBEdit) and coding environments (e.g., Coda) do ‘support’ Subversion, their implementations are nothing at all like Versions’: yes, they might provide a menu for issuing basic Subversion commands, but in real world use, they offer nothing at all like the seamless graphical environment provided by Versions.
Versions in Real World Use
As you can probably tell, I’m no expert at Subversion. And in all honesty, I don’t even use it a great deal. (In fact, I’ve been ‘using’ Versions itself — very intermittently — for about 8 months now, and I only now feel like I’ve used it enough to offer a few vaguely informed comments about it.) But when I do need to interact with Subversion, Versions is an absolute joy to use. It doesn’t get in the way, and it just lets me get the job done vastly more efficiently than I would be able to manage via the command line interface. And visually, it’s beautiful. Call me shallow, but I rather like working with beautiful things.
If your needs for version control systems are at all like mine — perhaps you occasionally need to dip into a Subversion repository holding academic papers or research data, or perhaps you want to use it to manage your website source files or a bit of PHP code, but you don’t really live and breathe Subversion — then Versions might be just the ticket to get the basics done without hassle.
Beyond the basics, Versions also makes it easy to set up your own repository on a remote service (for free), and it’s straightforward to create your own local repository, a feature which not all Subversion clients offer. (By a ‘local repository’, I don’t just mean a local copy of a remote repository: I mean a full-fledged repository hosted on your local machine.)
If you’re a full-fledged Subversion ninja, perhaps your experience with Versions would differ from mine: not being an advanced user myself, I don’t really know whether Versions can tap into all the Subversion power you might need. What I can say, though, is that however advanced your needs might be, Versions certainly seems to me to be worth a look.
As for problems or hiccups, I’ve experienced only two — one with Versions itself and one with getting in touch with the developers for support. The hiccup with Versions itself occurred when I inadvertently renamed two files that were under Subversion control from outside Versions; this left me for awhile with some ‘ghost’ files that kept reappearing when I copied the contents of trunk into a new tag directory. Of course the original mistake was mine, but it was still frustrating to deal with those ‘ghost’ files and to try to hammer them out of existence. The other difficulty was just with getting a reply to some initial queries about the software: I cannot say whether it was a temporary glitch or whether it was indicative of a more general problem, but in my experience it sure was difficult to elicit a reply. (Once I did get a reply, however, it was very courteous and helpful.)
System Requirements and Pricing
Versions requires Mac OS X version 10.4.9 or higher. Diff support requires an external application like FileMerge, BBEdit, TextWrangler or others. It sells for €39, with an additional 19% VAT payable for EU residents. Educational discounts are also available.
Please see the Versions site for full details.
Please see our Review Disclosure Policy.
You Might Also Like
All clinical material on this site is peer reviewed by one or more clinical psychologists or other qualified mental health professionals. This specific article was originally published by on and was last reviewed or updated by Dr Greg Mulhauser, Managing Editor on .
I do a lot of work with version control on the Mac. Typically I only use the Subversive plug-in for ColdFusion Builder or Eclipse. However some clients of ours at CFWebtools are using Versions , so I had to install and learn Versions to help them out. The download and install is typical 'Mac easy'. However, I find the way Versions works is a bit more confusing than it should be. Also, unless I am not seeing them, Versions only has a subset of the SVN commands. I am not seeing merging, branching and tagging. I don't know how you're supposed to merge branches and tag using Versions. To me this is a severe shortcoming.
Also I found the UI to be confusing. Repository Bookmarks? What are those? I've never heard bookmarks used in terms of SVN with exception to how tags are sometimes explained. When you look at the top level in the Bookmarks pane you get the view of the server. In other SVN clients this is called the Repository Browser mode. In the subfolder level of the Bookmarks pane you see the code checkouts. I can see how is it very easy to get the two views, which are blended together into the same window, confused. As far as functionality goes, I can checkout, commit, update and view differences etc. However I cannot merge two branches or merge a branch back into the trunk. I can checkout the trunk and a branch for the same repository at the same time and see them both but I can't do a merge. If this was a freeware product I suppose it would be acceptable that wasn't full-featured but this is commercial-ware and as I see it, it's missing critical features.
So I started downloading other SVN standalone clients. There is RapidSVN and SmartSVN that I found and they both looked like they have a decent UI to work with. First I tried RapidSVN and it required Rosetta to install so I said 'the heck with it', and deleted it. SmartSVN did install and what struck me was it had a more intuitive interface than Versions. The first thing it did was to ask if I wanted to connect to an existing check out of code. Not, ask if I wanted to create a new Repository Bookmark. Of course I did, I have code for about a dozen projects checked out. I also found that SmartSVN has a more complete set of version control commands, including merging and branching and tagging. Also the UI does not try to blend or hide the difference between the repository browser and your local check out. If I need to browse the repository it does so in a new window just like every other SVN client I've used on Windows and Mac.
SmartSVN clearly, without any customization, identifies changed files. And I believe the default sort order was by changed files on top but don't remember if I change that right away or not. It is very easy to change the way you sort your files with SmartSVN. I found that the ignore feature works like other advanced SVN clients and lets me set wildcard patterns. This is something that I noticed I could not do in Versions.
Free Svn Client For Mac
Overall the look the feel and the flow of usage of SmartSVN was very intuitive and useful. If I needed to use a standalone SVN client I would definitely purchase SmartSVN even though the price tag is a bit hefty at $80. Which is why I prefer using the Subversive plug-in for ColdFusion Builder.
Apache License
Of course OS X already has command line SVN commands available at your fingertips if you so choose to use them. Enjoy!
Xcode
*** UPDATE ***
Cornerstone was mentioned in the comments below, so I downloaded and tested. My quick 5 minute review is positive. Multiple SVN repositories, clear delineation between repo view and check out view. Most SVN commands available on right click (had to hunt around to find ignore). Branching is as easy as it is in Subversive. And the price is better than SmartSVN. +1 for Cornerstone.