Subversion is versatile, feature-rich and works well with Xcode. Read this article to learn how to install and set it up on Mac OS X Server.
Getting Control with Subversion and Xcode
About The Author
Ex-programmer, ex-editor in chief at OSNews.com, now a visual artist/filmmaker.
Follow me on Twitter @EugeniaLoli
2005-11-09 3:31 pmVanders
If you’re creating a small SVN repository using the standalone server mode, it’s about as easy as setting up a simple CVS repository. If you’re going to use WebDAV than yeah, the configuration gets a little more complex, but that’s because you’ve added Apache to the mix. I have to say I had very few problems creating a WebDAV capable Subversion server from scratch.
2005-11-09 3:37 pmsappyvcv
CVS needs to make it easier as well
I have used SVN to create a simple repository. And while it’s relative easy once you’ve done it before, it is kind of difficult to figure out if you have not.
The whole svn show is part of fink. No need to manually apply patches before compiling. That’s so 1970s.
A client of mine runs svn on a Mac Mini for their Mac projects and we did the setup with fink _much_ easier. We even added websvn to it which actually makes it rather nice and accessible. Unfortunately the 10.4.2 server itself was not as rock solid as we hoped – once it went into an odd lethargic mode where every action took a minute or so while top sloooowly indicated it was just at 0%. Not handy when it’s remote. We managed to post a reboot and since then it has been fine.
On my (slow) laptop I use some prebuilt version of the client, so I don’t have to have fink and the whole server bloat. Xcode does lack some features involving svn management beyond the state of files already listed in it, though, which means regular trips to Terminal.app.
I never much liked using Xcode’s built in SCM. It is just too clumsy to work with. I like complete control over my commits and this control actually comes easier than using Xcode’s SCM.
The only thing you have to do is set svn:ignore for your build directory and svn:ignore for Project.xcodeproj/*.pbxuser and Project.xcodeproj/*.mode* and you are set.
After that, all of the files that Xcode actually manages for the project’s state are handled perfectly for use with subversion. Say you accidentally delete a reference to a file from Xcode, you can re-add that file from Xcode and the project’s state file actually stays the same. Very organized state file.
Besides, how hard is it to do:
svn diff | less
svn commit -m “Commit Message”
One more tip I can give for independent developers (and probably teams) is that after each commit think of a clear concise and small goal for your next commit (and ffs keep the tree green . It keeps you focused and makes it easier to go back and see what you done and most importantly why you did it.
I hope this helps someone, it certainly works for me.
If you are new to subversion, I recommend this book:
Pragmatic Version Control Using Subversion by Mike Mason
I have literally hundreds of computer books, and this is the first one in nearly 15 years that I have read cover to cover.
This is a very good read and is filled with a lot of good information and not very much fluff.
I think this article is more useful.
Using Subversion With XCode
But, Anyway, Xcode’s SCM integration is not so good. 🙁
(e.g., Nib file support is faulty. SVN+SSH with authentication doesn’t work correctly.)
You’d better use the Command-Line tools instead.
Edited 2005-11-09 09:35
I’ve used Windows XP with Tortoise quite a bit, but I’m not perfectly satisfied. I use it with svn+ssh (keys from puttygen). The problem is mainly that the update of icons is somewhat slow. While I’m perfectly satisfied with SVN itself, the advantage of having version control built into the GUI is usually something I want.
Anyway, I think SVN is generally here to stay, and there seems to be a shift these days from CVS towards SVN.
SVN is good but they need to work on making it a bit easier to set up.
I use it for my projects though.