If you use OS X as your development platform, Vincent Danen recommends his favorite Subversion client application for the Mac, the powerful and feature-rich, Cornerstone.
OS X makes a great development platform. Not only does it have a rich programming environment and a number of great commercial and open source tools available for it, but its UNIX underpinnings contribute to a massive number of open source technologies available for it. Using version control on the Mac, just like on Linux, is a simple affair. Keeping up-to-date with the latest Subversion or Git is possible using third-party open source repositories like Fink.
With the rich GUI OS X provides, there are a few nice GUI clients for Subversion. Some are free, others are commercial, and as with all things, some are better than others. One very feature-rich commercial client is Cornerstone. Out of all of the Subversion clients I’ve looked at, free- and pay-ware alike, Cornerstone comes out on top.
Cornerstone’s main features
Cornerstone has some really great features. For instance, the sidebar that lists working copies of repositories gives you a quick status update on the number of files that are changed from the repository, letting you know exactly how many files have been modified.
The main window is similar to the Finder’s list view: triangles to expand directories nested in a tree. Each directory or file quickly indicates the last modified date and what the current revision is, as well as who made the last commit. Files are associated with their default applications, so double-clicking on a PHP file will open it in Textmate or Komodo, depending on what you have associated with that file type.
The file inspector opens another pane inside the main window where all the file information and properties are available to see. Here you will see if a file is locked, the last modification date, repository status, and more. You can even define here, if you wish, to use a different default application for the highlighted file type. For properties, you can set Subversion properties here, such as keywords, svn:mime-type and other “svn:” properties.
Cornerstone works on the idea of repositories and working copies. Creating links to repositories does just that: creates a view type of a non-local subversion repository via HTTP, HTTPS, SVN (or svn+ssh) server, or a local file:// repository. From the repository view, you can look at repository contents, get diffs of different revisions, look at file history, and so forth. While Cornerstone internally caches some of this data to keep things fast, all the information is taken from the remote repository.
Right-clicking on the repository gives the option of checking out a working copy of the repository. You can check out a working copy of any point in time; by default, it will check out HEAD (the latest version).
Having the working copy linked to the repository offers other advantages, particularly if you link a repository to a bug tracker. By doing this, Cornerstone hot-links certain commit messages (such as “fixed bug #35″) to allow for opening your browser to the bug tracker, on bug #35. In order to get the most out of Cornerstone, it is best to check out working copies this way, rather than on the command-line, as it improves the integration between working copy and repository. Working copies are still available for use with the command-line, so there is no lack of compatibility there; Cornerstone just sets a bit more magic when it does the check out.
Cornerstone is a very powerful application that really gives you a nice view of your subversion repositories, and allows you to nicely link to remote repositories you may not necessarily want to keep a working copy of, but can browse through all the same. Download a copy of the 14 day-trial and give it a try; there are other GUI Subversion clients for the Mac but I have yet to find one as powerful and feature-rich as Cornerstone.