Subversion Client Issues
Monday 13 July 2009 - Filed under mac + programming
I use subversion, and won’t switch to something newer for a while, so it’s worth looking at how to polish that old hammer. I’m used to using the command line svn, or emacs. But recently I decided to try out a few of the nice GUI clients that are around, including Versions, ZigVersion and Cornerstone.
Of these, the only one that’s polished enough to lure me away from emacs and seems to support my favorite mode of working is Cornerstone, and it still gets it a little wrong.
I like to write log comments while looking at (and scrolling through) the diffs for the files I’m committing. This means I want a text field for writing log comments on the same screen as the diffs, that isn’t modal, and doesn’t stop me from moving around between multiple diffs.
As far as I could tell, I couldn’t get the comment field and the diff display shown together in Versions, and while I could in ZigVersion, that app had a subpar diff display and lacked polish overall, missing key shortcuts where I’d expect them, for instance. Cornerstone almost lets me do what I want, but it displays the comment field in a modal sheet, so I have to cancel to change which diff I’m looking at.
This is easy in emacs, but I like a nicer diff GUI. Am I just missing something? This feels like a natural workflow, so it seems strange that no clients support it well.
2009-07-13 » mike
14 July 2009 @ 6:58 am
I had the same issue when I used SVN and Cornerstone.
I ended up typing up the commit notes in some other editor (Xcode, TextMate, yada) while browsing diffs and then just copy/paste the thing into Cornerstone to do the commit.
14 July 2009 @ 9:15 am
The SVN client in TextMate does allow you to edit the message and look at diffs at the same time. Of course this is no help if you prefer another editor…
14 July 2009 @ 10:36 am
Interesting. I couldn’t find a good screenshot for what that looks like on the macromates site, but it’s probably moot anyway. Being mostly an emacs user, I really can’t imagine myself ever paying for an editor.
14 July 2009 @ 5:37 pm
You should definitely try textmate.
Simply install textmate (and open it at least once to install the command line tool), then cd into the root directory of your source code, and type
mate .The UI is a bit clunky… unfortunately you also have to open a file… or textmate’s scripting isn’t available, then select the root directory of the website in the project draw and press control-shift-a (or use the menus) to bring up the SVN menu.
Here is a screenshot of how I use it in your scenario, project on the left, status (and log of commits) on the right, and click the “diff” buttons to see the changes: http://tweetit.net/70nwm4
And here is a screenshot of the non-modal commit window: http://tweetit.net/r7hj3i the commit window also allows you to untick individual files, which is a nice way to tweak which files get committed while you are typing in the commit message.
And from within the
svn standsvn ciwindows, you can do tasks likesvn add/revert.Plus, the entire SVN module is written in Ruby, and is open source. So you can hack it.
TextMate is not pretty, and a few things are clunky. But it is very functional. I have tried all the different svn tools (some of them for months at a time), and have finally settled on a combination of TextMate and Terminal for doing svn operations. Terminal when it’s simple, textmate when it’s not.
15 July 2009 @ 7:22 am
Abhi, thanks for the screenshots! I hadn’t seen TM’s SVN support in action before. I think it looks like TM has a similar feature set to emacs’ VC-mode, so I’m actually less likely to try it after seeing those screenshots. I was expecting an acclaimed mac-only editor to be more shiny…
Plus, I’m more likely to hack emacs lisp than TM ruby. But that’s just familiarity I guess.
I’ve posted a screen cap of how I use VC-mode in emacs as a new post.
26 July 2009 @ 1:57 am
Versions and Cornerstone are blenders, they just look good but if you scratch on their surface they support only a minor feature set of SVN. This might be enough for home users but not for professional development. Hence, after a longer period of comparison, our company decided to take smartSVN Professional. It does not look that nice as the mentioned “blenders”, but is faster, works perfectly and is easier to learn. The price for the Professional version are peanuts compared to the price of a good developer.
26 July 2009 @ 9:37 am
Randolf – thanks, I hadn’t heard of smartSVN. It looks interesting, but I couldn’t tell what the commit workflow is like – their screenshots are all cropped a little too much. Sounds like it’s pretty powerful, though.
The lack of SVN feature coverage in the other tools is mostly OK with me, though – I’m fine with using the command line for some things. I just like to have a GUI for the most frequent tasks.