A good place to start is Wikipedia’s Comparison of SVN clients. I skimmed through the list and retained a few solutions (my selection is arbitrary)
- OS X native front ends: Cornerstone, SCPlugin (finder integration), svnX, Versions, ZigVersion
- Java front ends: sdSVN, SmartSVN, Subversive, sventon, Syncro SVN
- Other front ends: RapidSVN
I was rather used to TortoiseSVN. Tortoise integrates well with the windows desktop although the SVN version isn’t flawless (been quite a learning curve to understand some of what it does, and how, and why…). Never mind, tortoise isn’t available on MacOS.
Since I started developing on OS X, I used svnX. It’s free, but it’s nothing like Tortoise. XCode integrates SVN services and it’s OK to do simple operations, but it doesn’t substitute a comprehensive SVN front end.
I’m testing SmartSVN right now. It feels great compared to svnX so far. However I’m kind of missing a nice desktop integration so before I drop the buck ($79, oh my goodness) I guess SCPlugin is next on my list.
How XCode manages my files…
Working with XCode doesn’t make it intuitive to keep the actual code base neat. What really happens is like this:
- You create files and add them to your project.
- You organize your files using groups. Groups are nice in a way. The downside, however, is that without care all files end up in the same folder.
- You put aside files you don’t want anymore (well, yea… happens to everybody, right)
- The files aren’t ‘project files’ anymore, but they’re still in your project folder and still in SVN.
- XCode’s SVN integration keeps track of these files like anything else. So we have these ghost files in the repo and in the project director(ies), and we don’t really know where they’re coming from, what they’re doing here and if we want to keep them or not.
I feel annoyed with this situation – it’s not terribly annoying if we were only working with XCode, and that is exactly why it is annoying. I end up with scores of files that I don’t need, making checkouts heavier. I’m also having a hard time running other tools against my codebase. All the while everything looks perfectly neat inside XCode. And to perfect a rather diminishing portrait, the XCode proj. files aren’t anything easy like neat, humanly readable XML. More like porridge.
But surely that is nothing to bear with. Objective-C doesn’t even support packages anyway.