Building PHP in Mac OS 10.5.3 Version Beta Update

First Impressions of Versions

Posted in: Development, Software, os x Add comments

Today, after what seemed like an eternity of waiting, Pico and Sofa (Checkout, Disco) finally released their first beta of Versions, a Subversion client for Mac OS X. I stumbled on to Versions some time last year when I was in a fever to replace svnX. While svnX works, it is far from an optimal solution to manage multiple repositories. All of the excitement started this afternoon, at around 1:30 PM AST when an email showed up in my inbox from “Versions” with the subject of “Versions Beta Announcement”:

Versions Beta Email

Needless to say, I went to the website quickly and downloaded a fresh copy of the beta. The entire package clocked in around 2.7MB and downloaded very quickly. My very first impression of the app was the giant flower they have as an icon. I normally don’t fuss over icons, but this thing is gorgeous. I’ll include it here, for the sake of including.

Versions Icon

Ok, on to actual experience with the application…

When I first opened the application, I was greeted with screen that presented me with three options:

  1. New Repository Bookmark
  2. Free Online Repository (Powered by Beanstalk)
  3. What do you think of Versions?

I selected the first option, because I don’t need any svn hosting, but it’s a nice idea to include a link to an svn host in the app.

Inital Launch

When you select “New Repository Bookmark”, you get asked for a few simple pieces of information: repository name, repository url, username, passsword, and optionally a link to a ticket system which links #123 in an svn comment to http://url/of/tickets/123. Neat!

New Repository Bookmark

I decided i’d enter the repository information for jQuery Lightbox, hosted with google code. This is where I ran into my first problem with Versions. It threw a subversion error related to the certificate on googlecode.com

Versions HTTPS Error

I wasn’t entirely surprised by this error, as I got a similar error in svnX. My guess is that other folks have the same trouble with google code. I decided to set up the http version of the repository. This means I wouldn’t be able to commit from versions, but i’d still be able to get a feel for everything else in the project. After changing the protocol to http and clicking “Create”, I got my first real taste of the Versions interface.

Successfully Added Repository

Let’s see what we’ve got there. Some of the standard controls for any svn app, update, commit, diff, etc. In the main interface, it looks like I have a list of my repositories, and the meat & potatoes of the app is in the main content view. There’s some interesting controls in there that i’d like to explore. First off, on the left of the main view, there’s a button that reads “Select” and what appears to be a depressed button next to it labeled “REV HEAD”. Clicking there allowed me to view any previous revision. The three large buttons in the middle of the view, “Timeline”, “Browse”, and “Transcript” also need to be explored. Browse looks like it’s a standard filebrowser, showing what revision files are at, date modified, who modified them. Clicking on timeline brought me to a view filled with a Trac-esque timeline view.

Repository Timeline

The timeline viewer is a great addition to an svn client, because it gives you an instant overview of project activity. Who’s making what types of changes, and when. I’ve always relied on Trac, cvstrac, and custom written timeline viewers to give me an overview of this type, but having it directly in the client makes it a good deal easier to have access to.

Now that I had the repository added, I wanted to see how Versions tracks changes through a project. To do this, I was going to have to checkout a working copy. I selected the project, clicked the “Checkout” button at the top of the window, and I was off to the races. I just needed to tell Versions where the repository was going to be checked out to, and it did everything else without issue.

With a working copy successfully checked out, it was time to make some modifications. I looked for a simple edit to make based on the project’s issue tracker. After a minute or two of reading I found my edit, and made a change to one line of the main .js file. It was time to switch back over to Versions and see where my changes showed up. At first, I didn’t see any changes listed in the file browser, and that was a little discouraging. I noticed a little refresh glyph in the top right, and decided to click it. Sure enough, my changes showed up after clicking that. While that works, it’d be great if I didn’t have to click refresh. In any case, my changes were there, with an icon appearing next to the file I had made changes to.

Also, above the file browser, I had the option to toggle between “All” and “Changed”. Changed lists just the changes files in your working copy.

So far so good. The one last thing I was worried about in this little walkthrough was how Versions would handle diff’s. I’d read on their website that if you had Xcode installed, that it would automatically use FileMerge for diff’s. This is the same behaviour that svnX uses, and i’m a big fan of it. I selected the changed file in the file browser, and clicked “Compare Diff”. Sure enough, FileMerge was there listing my change.

That was just about everything I needed to see to work with this app on a day to day basis. There’s still the regular headaches that come with svn, but this app looks like it is going to make version control a whole lot nicer to work with. I’m already sold on the app, and I haven’t even started using it with any of my work projects yet. That’s what this weekend is going to be for.

To sum it up:

The Good

  • Simple, Clean Interface
  • Integrated timeline
  • svn+ssh:// support
  • Integrates with Xcode’s FileMerge

The Bad

  • Need to refresh file browser for each change
  • Still In Beta!

Leave a Reply