Updated 5 December, 2008
I choose Cornerstone for its inline content viewer, superior commit, and better history interface. It's what I use daily to work on apps like Arena Pinball.
Note from 2010: Since this comparison Cornerstone has released v2 that covers the Versions advantages below as well as branching and merging. Versions has not been upgraded significantly. I had already preferred Cornerstone, and now as of Nov 2010 Cornerstone is the far superior application in every way.
Cornerstone and Versions are similar in a good way
I'll assume you are somewhat familiar with Subversion in that I won't explain any terms or procedures. That said, both of these applications do a good job making Subversion easier if you are new to it.
I could use either application and be happy because they both do a good job managing repositories and working with working copies. Maybe more important to me is they both do it with the state of the art in Mac UI.
The superior Cornerstone commit interface.
The basic workflow of committing changes is something I do over and over so the experience has to perfect. Both apps have a "Changed" view that shows everything I need to see and nothing I don't. Version has this view active by default when there are changes. I wish Cornerstone did that or at least offered it as an option. The next step is the commit and Cornerstone wins here because it can automatically add unversioned files and has a message history. Both apps have a spell check in the commit message and list of pending file commits. While committing or updating in Versions you can't do anything else in that window. You can spawn a new window easily and work in it, but it's still frustrating. Cornerstone lets you keep working in the same window while transactions are underway, but lacks the transcript feature of Versions. I can't find a server log at all in Cornerstone.
The second most important functionality to me is managing my various repositories and working copies. Both apps offer folder and subfolder organization, which is huge for me. Versions always organizes working copies under their repository. I think this is probably a better way to do it, but I've also become used to the Cornerstone system of keeping working copies and repositories separate. At the very least it's not something I would leave Cornerstone over.Both apps constantly scan all the working copies to indicate if there are changes. Something minor Cornerstone has that Versions should is the "Show in All" function while browsing in the changed view. Something more important that Cornerstone is missing is the Blame view where you see who last modified each line. Both apps support the excellent Mac OS X Quick Look functionality where you can preview any file by pressing space.
Viewing the change history of a file is a fundamental part of source control systems. Cornerstone has a great history UI while the history window in Versions seems like it came from a different
program era. Both applications allow you to use any external comparison tool, but Cornerstone also provides an inline content comparison tool. It works with a variety of file types, including many graphics.
The history interface and content viewer are major advantages of Cornerstone, but it still lacks the repository timeline of Versions as well as its interface to browse a repository as a specific revision. While those are things it would be nice if Cornerstone had, I usually prefer to use my repository host web interface for those functions because of the more sophisticated user management it offers.1
Subjectively, the Versions UI seems cleaner and I like the icons better. Still, it was easy for me to customize the Cornerstone toolbar to get it to a comparable state. The first thing to go was that iTunes-esque status display. I don't miss it at all, the little working indicators beside the working copies and repositories are enough. All that's missing to fully cleanup the Cornerstone UI are options for the browser columns and filters.
Modal popup that obscures the UI
Each application has a minor UI design choice that bugs me. First is the custom folder browser that Cornerstone insists I click through before getting the OS browser. At least I only have to be annoyed by it once per working copy. Versions's problem is the modal commit/update sheet that obscures the transcript page that it links to.
I found both apps to be completely stable and reasonably fast. The performance and stability problems I found in older versions of Cornerstone appear to have been completely fixed. Working copies are handled well in both apps as is drag and drop finder integration. While both provide a way to mark conflicts as resolved, conflict management still seems to me to be something that could be done better. Both apps have good self-update systems. Both apps support Subversion 1.4 and 1.5, although I prefer how Cornerstone is more clear about upgrading and downgrading working copies.
Creating a branch or tag is easy since both apps allow folders to be copied in a repository. I think there's still an opportunity to make Subversion more accessible by augmenting that with a branch/tag creator. Both applications fail to provide merge functionality for updating a branch from the truck or vise versa. Working with branches is mostly ignored is these applications, leaving the user to keep a terminal close by when working in a branch. Solid merge functionality is something that could easily set one of these apps apart from the other.
Each application has things the other is missing, but overall both do a good job of improving my Subversion experience. Since I must choose one, Cornerstone is my preference because of its better commit and history interfaces. This could change in an instant if, say, Versions came out with robust branch management first. Given the rapid pace of development we're seeing in both apps, I'm optimistic. Let's hear it for competition.
I've looked at the ZigVersion movie and screenshots, but haven't installed it. The management of working copies and repositories in some sort of bookmark library is very important to me. In ZigVersion that's almost non-existent, just a "Recent Servers" dialog. That alone takes it out of the competition.
ZigVersion doesn't appear to have anything that Cornerstone and Versions don't. It also seems to be missing a lot that they do have. For one, it looks like ZigVersion doesn't have anything close to the content viewer and history UI of Cornerstone. Also, it appears ZigVersion just has a single file browser view that is used by both the repository and single working copy simultaneously.
On a minor note, it's hard to get excited about ZigVersion because it has an old-style Mac UI. It looks like apps did back in the early days of OS X. I definitely am into superficial UI fashion, but there are also solid usability reasons why we see modern apps of this nature moving towards the "iTunes style" and other styles Apple is pioneering.
Non-commercial is free. A full license is $99.
While appearing to be fairly full featured, it's a cross-platform app based on Java. Those apps never feel right to me compared to native apps. One of the big appeals of Cornerstone and Versions is that they're trying to fit well with the OS and use design trends. The SmartSVN UI is cluttered and confusing. The file browsing dialogs, terminology, and widgets are not Mac. Versions and Cornerstone are intuitive and clear while SmartSVN is full of wordy dialogs and proprietary terminology. Time to add a working copy... I'll add a "project" by choosing a "directory" with a multi-page wizard and a type of folder select UI I've never seen before. There was no Keychain access so I re-entered my credentials. The update command needs a dialog? The commit needs a multi-page wizard? Repository and working copy management is little better than ZigVersion. Since Cornerstone and Versions are so good, I'm not going to spend anymore time here.
One area where SmartSVN may be better is working with branches. It claims "Excellent Merge Support" and "supports tags and branches just like they were built-in to subversion, you don't need to bother with URLs". As mentioned, this is an area in which both Versions and Cornerstone are weak.
SmartSVN Pro is $79. There is a free, somewhat limited version.
"Diffly does not attempt to be a general Subversion GUI but is, instead, streamlined to make the process of browsing and committing simple, logical, and fast."
It's free, but clearly doesn't compete here (by design).
It's not in the same league as Cornerstone or Versions when it comes to usability and features. I tried svnX before Versions and Cornerstone were on the scene and actually ended up just going back to the command line. I appreciate the development effort, but for me a great SVN client is worth paying for.
Free, open source.
I use those three programs and their subversion capabilities. One of the great things about Subversion is I can use different clients at the same time on the same working copy and everything is fine. Integrated Subversion features can be handy while working, but so far I haven't seen the features like the history functionality of Cornerstone. I also want to have a dedicated Subversion app for managing all my repositories and working copies in one spot. The Coda SVN integration is buggy and I've since just turned it off. Bugs aside, I found myself using Cornerstone anyway for the functionality.
I'm a heavy Subversion user both personally and professionally. Most of my controlled files are code, but in the 15+ repositories I currently use you'll also find artwork and business documents. At my day job I use a Vista with the TortoiseSVN client. At home I use a Mac and now Cornerstone as my client.
The comparison was done on an iMac 20" 2.4 GHz, 4 GB with Mac OS X 10.5.5
©2008 Jade Ohlhauser