July 6, 2008
A quick comparison of the two new Subversion version control clients for Mac OS X. I had my eye on Versions as it sat in private beta. Now it's gone public at about the same time Cornerstone has burst onto the scene.
I spent a few hours in each program running through some basic tasks. Here are my thoughts.
Update: Follow-up posted
Despite the content viewer, great history browser, and mostly superior UI of Cornerstone, I'm going to go with Version's better management of working copies and repositories. It's a tough call, and I could live with either one.
Both programs did a good job of adding, moving, renaming, and deleting working files. File management was important to me as it's one area that's especially annoying when using Subversion by command line. Versions and Cornerstone also both handled updating and committing well. The Cornerstone commit UI is better since it offers message history while Versions only has the previous message. Neither commit UI created a separate field for the BugzID property present in some of my files. TortoiseSVN (Windows) does this and it's a helpful feature for FogBugz integration.
Separation of working copies and repositories is something I hate about SvnX. They aren't separate things, every working copy must have one repository. A repository can have none, one, or many working copies. Versions manages this relationship elegantly and clearly. I like how when you add a working copy bookmark in Versions it adds the repository bookmark above it. Cornerstone forces you to manage working copies and repositories separately. Because Cornerstone doesn't associate the working copy with a repository, I wasn't clear on how to fix things like a an old working copy I had where the URL of the repository had changed. In Versions it was obvious.
There is one small advantage of bookmark management in Cornerstone, the ability to organize them in folders. Also, Cornerstone allows you to rename bookmarks by the standard of clicking a selected bookmark. Versions requires you to use the edit command.
When browsing working copies in Cornerstone, every time you expand a folder or click a filter option it has to take a second to update. This is usually merely annoying, however, several times it became stuck and wouldn't update the working copy of a repository until I relaunched the program. That is worse than just annoying. Versions was always fast when browsing or filtering the working copy.
Cornerstone has an inline content panel that shows you the selected file. This is a great feature since it works with not only code, but image files, PDFs, even PSDs. However, it can't display .doc files, and it's PDFs and RTFs are little messed up. Also, it does a poor job of code coloring and doesn't color CSS or HTML files at all. My expectations of content viewing have been raised by OS X's Quick Look, especially with it's plug-in architecture. Still, the content browser is a welcome feature and one of the advantages of Cornerstone.
Cornerstone has what is probably the best revision history browser I've ever seen. It's so good that it would win this contest if history was really important to me. How could history not be important a revision control client? I find I don't have to investigate files that often. The majority of my interaction with the Subversion client is to manage working files and do updated and commits. The problem for Cornerstone is that Versions history comparison is good enough and Corenerstone's weaker bookmark management and working copy annoyances has more of an impact on my daily work.
Versions has a server transcript available during and after operations. I couldn't find anything like that in Cornerstone.
Both programs did an adequate job of handling conflicts, but this still seems like something that could be done better.
Both programs have nice, modern UIs that follow the general iTunes pattern. Cornerstone has the option to keep everything within one window including file properties, content viewer, and history. Versions spawns windows as needed and relies on an external file comparison. I can foresee a benefit to being able to use a different comparison tool, but I also like the option of keeping everything in one window when revision control is just one part of my many development tasks and applications. As mentioned, Cornerstone has a great history UI. Versions, on the other hand, seems to stray from its modern UI once you leave the main window. The Versions history UI reminds me more of SvnX than the level of UI the Versions browser leads me to expect.
Just give me the OS X file dialog, not this useless menu first.
I'm going to stick with Versions. I'll get to know it well and plan to post a detailed review after a few months. I may still end up buying Cornerstone to use on repositories that are focused on graphics files or that I don't have a working copy of. Both of those situations are ideal for Cornerstone's content viewer and history UI.
I will be asking the Versions team for these two small and one dream improvements:
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 including print marketing. At my day job I use a Vista with the TortoiseSVN client. At home I use a Mac and have been stuck with the SVN command line while I wait for a good GUI client (sorry SvnX, you aren't). Looks like my waiting is over.
©2008 Jade Ohlhauser