Going down? if @rogieking wins, he's donating the prize to charity. Please vote #komodomedia here: http://is.gd/8duC 15 hrs ago
Tags: , , , , , , , , , , , ,

A couple days ago I wrote about how frustrated I was with the inferior SVN options available for Mac users. While I have great faith in Made By Sofa and anxiously await the beta of Versions, it simply isn’t available. Via the comments on that post, I started to get the impression (as happens from time to time) that I may have been too hasty in my judgment of the clients.

For clarity, it needs to be said that I am (A) a visual person and prefer GUI when I can avoid command line, however powerful it may be (chaz), and (B) I despise “kitchen sink” apps with a dozen panes of conflicting information, file navigations, status messages, etc.

In the past, I’ve been the sole developer on my projects. If and when I was working on code, I never had to worry about overwriting anyone else’s work, or wondering what the latest update was. More often than not, I start locally, building flat files or using MAMP, and then end up in the sandbox on the client server doing live edits (I know, I know, bad practice).

While I’m the lead HTML/CSS guy here at work, I have the CMS team linking to stylesheets, and the JS guy making modifications to templates to init his stuff. Corporate is also a little more anal about losing work. No data stored in a single location, backups, backups, backups.

What I was looking for was a way to:

  1. Use Textmate and Finder for file manipulation
  2. Commit changes painlessly to the SVN repository
  3. Have those files automatically available on my development server with the latest version.

The revelation was realizing that I needed to break down the distinction between local, repository, and dev server into only 2 locations: work and backup. If you haven’t used MacFuse before, it is a free “mechanism” from Google that lets you mount almost any file system on the Mac, including servers via SSH. Using SSHFS, I am able to locally mount the dev server. Then I simply checkout the latest changes to that location (without the need of Capistrano or other recommended tools), and edit via TextEdit as if it were local.

For the client, I ended up using SmartSVN because while feature-ridden (if not bloated), it’s config settings were the “killer feature.” Essentially they “just worked.” While Textmate has an SVN bundle, it requires the configuration of a shell variable that never worked. When SCPlugin actually communicated with the server, it was busy trying to version my entire drive, OS and all. Needless to say, I uninstalled that one but quick. SVNx is cute but completely unusable by shrugging off the naming conventions of SVN for its own (copy = commit? what?) and crashing repeatedly.

I had tried SmartSVN first, at the very beginning, and been turned off because it was very PC-like, the closest thing to a “kitchen sink” app I’ve seen on a Mac in a long time. It came in with very little consideration for UI, and an assumed high level understanding of what you were doing. 3-4 screens for every update, commit, comment, etc. I simply had no idea if I was irreparably damaging the repository while I groped my way around its interface blindly. By the time I had rolled through all those other apps, I was an SVN expert, and ready to tackle SmartSVN. Sure, I should have RTFM, but if you’ve read this blog at all, you know thats just not me.

For extra ease of use, I recommend setting up public keys for the server on your computer so that SSHFS doesn’t ask you for a password everytime you connect. Also, look into the preferences panel to automate updating and as many other tedious steps as possible.

At this point, I’m extremely comfortable with my setup, and so is my team. I find it pretty annoying that SmartSVN versions the .ds_store files, but until I find a way to kill that feature, I’m willing to live with it.

How’s your SVN hunt going?

Side note: I used Zemanta to automate some of link making process in this post. Disappointingly, all I got was some Wikipedia links and pictures that didn’t match. That said, I have faith the service will improve.

4 Responses to “My solution to SVN on the Mac”

  1. Hy from Zemanta!

    It is really nice to see people using our service!

    I tried to put your blog into our service and got most of the suggestions quite right, so we might have different idea of what to suggest. We are very interested what our users would expect from the service in order to be able to improve it for them. (it does not really matter what we think here :)

    So going beyond stuff “not matching” can you give some ideas about what was wrong with suggestions (related news) and what we should put under pictures and related news instead?

    Really please get back to us! We’d like to hear from you either via email or via getsatisfaction.com/zemanta

    bye
    andraz

  2. Hey Andraz, thanks for stopping by!

    When I say “pictures that didn’t match,” I just meant pictures that I didn’t feel enhanced my post. I’m sure they matched some meta criteria, and might have been useful to someone else writing on a similar topic.

    All in all, I’m very impressed with your service. Since downloading the beta beta plugin for wp2.5, I’ve been able to get it to work on my self-hosted install, and I use it to automate things where I would have otherwise used text snippets (flickr, google, yahoo, etc..).

    I would love to see links generated by google blogsearch or something more related to the the argument, rather than self explanatory keyword matches. I know thats hard to do, but think about trackbacks and aggregators like Techmeme. Those are links I’d like to be able to post, personally.

    I’d be more than happy to go on if you’d like, haha.

  3. Interesting post!

    I’m in a very similar circumstance, and I’ve had the task of “setting up” an SVN environment for our team here at Flat.

    I’ve been reading into different types of SVN configurations, and I’m assuming that a “safe” route was to enable remote access to our repository via the SVN+SSH protocol. I found this article to be useful: http://svn.haxx.se/dev/archive-2004-03/0253.shtml

    Also, I found a “deece” GUI SVN client in Syncro SVN — http://www.syncrosvnclient.com/ — although I think that this might fall under the category of “kitchen sink app”.

    What about Eclipse?

  4. SVN+SSH is what I use personally. Since access to the work svn is behind the firewall, I think they use slightly different security settings.

    I haven’t played with syncro, but I’ll be sure to check it out. Eclipse was a little bloated for my purposes, as I’m not using its built in text editor and what not.

    Thanks for the link!

Leave a Reply