Preview of Versions SVN ClientI've been looking forward to seeing a dedicated subversion client which is designed from the ground up as a Mac app. The Sofa guys teased us a while ago with an app called Versions, but it never actually surfaced — until now. I just got a chance to play around with a pre-release build.
(Keep in mind that is is pre-release software, and many things are likely to change before the 1.0 shipping release.)
Versions is the first practical solution I've seen for developers — web developers included — who have high standards for UI and don't have the patience or interest to learn the quirks of the subversion command line tools. For those folks, this is far better solution than making zip copies of your source folders with manual timestamps, particularly when you work within a team.
Versions takes standard UI concepts from Mail, iTunes, Finder, and many other Leopard-era apps, and applies them to subversion repositories. This is interesting not just because it puts version control into the hands of non-experts, but it also allows those who are relatively comfortable with svn to take advantage of better browsing tools and features they otherwise wouldn't know about.
A source control app has specific requirements. The UI needs to be simple and clean so that the focus is on the project, not the tool itself. The workflow in Versions is oriented around the most common cases — adding repositories, checking out, submitting changes, browsing various versions, viewing file history, and reverting are all dead simple. In other words, you can be productive immediately. Versions doesn't attempt to invent new features as much as do the important and obvious things really well.
The developer must also be able to trust the tool by being able to verify what the tool is doing. Versions provides the Transcript view specifically for this need. Anything you do in the app accumulates in this log, which looks essentially the same as the output you'd see in the command line. Easy to copy-and-paste into emails and such.
Although you can use any standard SVN repository, you can also create your own local filesystem-based repository from right within Versions. This isn't a subversion server, but it does allow you to easily archive your files and track local changes without having to start up or connect to any services. The experts cringe, of course, at the idea of saving your changes locally, but it's a great solution for basic needs.
In addition to tracking source changes within a team, Versions makes it far easier to keep tabs on open source projects. In the screenshots below, I can see the most recent commits to the public WebKit repository, followed by the complete history of the GMUserFileSystem.mm file from Google's MacFUSE project.
If you've never tried to browse svn projects via the command line or a web browser, believe me that this is a vast improvement over the usual experience.
Versions is a collaboration between Sofa and a brand new company called Pico. Sofa is best known for the excellent Checkout point-of-sale app for Mac OS X, and was responsible for the visual design. Pico developed the actual engine of the app, which uses libsvn instead of simply wrapping the command line tools.
Now, certainly some of you are thinking that the svn command line tools work fine, and they do. I use them daily and they're pretty straightforward. But honestly, 'svn ls' isn't a great experience. They're good for basic check in and check out, but they can be incredibly tedious for anything else. Versions abstracts the details of all of that, and just allows you to browse the content.
There is also good SCM support built in Xcode 3, but that's part of a much larger application. As a dedicated tool, Versions orients its UI and feature set entirely around this particular set of tasks, separate from all of the existing requirements of Xcode as a whole.
So even if you have an existing solution, you can probably still improve your improve your process — particularly for browsing specific versions, running comparisons, and so on. Any time saved in this area is time that can go into actually writing code instead.
One More Thing
I'm excited to see this app ship because I think developers will finally start to see source control as a way to improve their process, not just another obstacle to shipping. And all of us should care about that because it means developers will ship better software on a shorter schedule.
I'm told Versions will be available to the general public very soon, but a specific date has not been set yet. You can sign up to notified when the beta is available.
Finally, there's one more feature that I'm not allowed to mention yet, but I suspect it will win over independent developers who are still on the fence.
Preview of Versions SVN Client
Posted May 31, 2008 — 49 comments below
Posted May 31, 2008 — 49 comments below