Ask a Jedi: Getting started with SVN

Joshua asks:

I'm wanting to start a project and I'm wanting to do it using methods like SVN, Versioning, Builds, etc. I've never done any of this and was curious if you had any pointers or guides out there about this. I just don't know where to start on learning or practicing.

I have to admit that I take a fairly simple view to Subversion. I don’t follow the guidelines for creating versions, builds, etc.

I can say that I make heavy use of the online book for SVN:

Version Control with Subversion

The book does a good job of covering server and repository setup, and it also discusses recommended repository layout for handling stuff like versioning and builds.

Outside of Subversion itself, I can make the following recommendations for clients:

  • On Windows, I loved TortoiseSVN. It acts as a mod to Windows Explorer and makes it real easy to work with SVN.
  • On the Mac, I've used ZigVersion, but have not been happy with it. Frankly, I haven't like any Mac SVN client.
  • Luckily though there is Subclipse, a very well done Eclipse plugin for Subversion. This will obviously work on both Mac and PC, so it may be the best choice. </ul> Again - I barely scratch the surface of SVN myself, so I can't offer a lot of advice. I will share one thing that I wish I had known early on. If you want to create a copy of your SVN repository to share with others, use the Export command. This creates a version of your code without any of the .svn folders. For a long time I was doing Check Outs and manually cleaning up the .svn folder stuff. Dumb. I'll also point out a recent article by Mark Drew: Using keyword substitution in Subversion. This demonstrates a cool feature of SVN you may miss out on if you skim the docs (as I did!).
Raymond Camden's Picture

About Raymond Camden

Raymond is a developer advocate for Extend by Auth0. He focuses on serverless and enterprise cat demos. If you like this article, please consider visiting my Amazon Wishlist or donating via PayPal to show your support.

Lafayette, LA