Get Started with Subversion using SvnX

A very important part of a development environment is source code control. Subversion is the server-side software that I use for this. There are a number of SVN clients for the Mac. Let’s take a closer look at setting up my favorite SVN client for the Mac – SvnX.

SvnX is a free and open source SVN client for the Mac. It has a rather simple user interface and supports most features required for SVN work. Let’s install it to get a better idea of what it can do. Head over to the SvnX site and download the latest release. After your download completes it should extract automatically. Drag and drop the SvnX application into your system’s Applications folder. That’s it, the installation of SvnX is complete. SvnX is a front-end for the SVN client, and therefore we need to also install the SVN client binary for SvnX to work.

Download the SVN client binary from here. Extract the file you download and copy the svn binary file to /usr/local/bin/

Double click on SvnX in your Applications folder to launch it. The first screen will look something like in the image below. There are two windows here, titled Working Copies and Repositories. You’ll get a better idea of what these two are as we go along.

Before we get into the details of configuring SvnX here’s a quick explanation of how SVN works. There is a repository hosted on a central server which keeps a copy of the documents for project. This could be code or other kinds of documents. The repository maintains versions of the documents. Every time you “check in” new versions it adds a “tag” for the new version so that you can retrieve an older version of the document at any time. Here’s a very good introduction to how SVN works.

To configure SvnX click on SvnX in the application’s menu and then choose Preferences. In the Preferences window enter the path of the svn binary, which is /usr/local/bin/ in our case.

Now let’s configure SvnX to work with your repository. For the purpose of this exercise I will use a repository that is hosted at the following address – “http://svn.sevenacross.com/project”. The username and password for this repository are “calvin” and “calvin123″ respectively. Please replace these with the information for your repository.

In the window with the title Repositories add the address of your repository, the username, and the password:

After you’ve entered all this information double click on the the entry for this repository to launch it. you should get a window that looks like the following:

It would contain a set of directory in the navigation area at the bottom. Select the directory you want to “check out” and click on the button svn checkout at the top of the window. A finder window should pop up asking where you want to “check out” the documents. After the process of “checking out” the code is over you will find an entry for it in the Working Copies window.

You are ready to begin working with these documents. Now open finder and go to the directory where you “checked out” the code. Edit one or two documents by adding a line of text or a few words somewhere and then save the files. Return to SvnX and double click on the entry for the project in the “Working Copies” window. You will find the files you modified listed in the window that opens. Select them and click on the Add button. Now enter these modified files back into SVN by clicking on the Commit button. Now if someone else were to “check out” this project out of your SVN server she will see the new files with a new tag.

Suppose there are many people working on this project you need to make sure you have the latest version of the documents before you start working on it again. To do that double click on the project entry in the “Working Copies” window and click on the Update button. This will fetch all the latest revisions for all the files that are part of this SVN repository.

There are many things that you can do using SvnX such as moving a section of the repository, or finding the differences between multiple files… but they are beyond the scope of this article. Feel free to read up the project’s documentation or to play with SvnX to discover how to perform these tasks.

More posts from the General Software Category

sf01a

How to Create an Encrypted Disk Image to Store your Private Files

Find, Learn and Remember Mac Shortcuts the Easy Way

unlock-screen-rotation.jpg

How to Unlock Screen Rotation on iPhone

Java Applet or Plugin Not Working in Safari or Chrome?

Comments [8]

  1. Sumesh says:

    I develop WordPress themes locally – using MAMP on OS X. I'd appreciate if you can write a post on using SvnX to maintain a theme directory in subversion, and update the files to a test WordPress install on MAMP (at Applications/MAMP/htdocs/blog/wp-content/themes/theme_name).

    Right now, I just duplicate the theme files and place them outside of the MAMP directory, but this is time consuming and has no version tracking. I've wanted to use Svn, but didn't find a guide for this particular use.

    I realize there may be a rather narrow audience for this post – but designers with no knowledge of Svn will appreciate the benefits of it if you can write a tutorial. I'd submit it to a few Digg-like sites for design too.

  2. Asu says:

    You've mentioned connecting to a HTTP URI but not everyone will have that setup. If you could let us know how to setup a local repository and how to make use of SvnX that would greatly help. Thanks.

  3. sergi bosch says:

    i'm having a bear of time creating and configuring an svn repository. i know svn is running find. but i can't get any farther than that.

    i've read multiple tutorials, and the methods very so greatly from one to the other. in some instances it says if i have svn running, i'll be able to locate certain files at my root level. maybe they are hidden…

    either way, a detailed explanation of how to create and configure an svn repository would be very, very helpful.

    here is where i'm stuck: do i need to install a subversion server? i'm already running MAMP. which i know runs in apache.

    i'm on mac os x.5.8

    thank you!

  4. Ann says:

    If you are using MAMP, you can try this good add-on package, which permit you to get Subversion server, and Trac (edgewall), on you MAMP. It's very easy to setup and works out from box.

  5. svnX says:

    PLEASE NOTE: svnX moved to http://code.google.com/p/svnx/ some time ago.

    SvnX 1.3.1 is NOT available from www . lachoseinteractive . net.

    It is no longer published by La Chose Interactive.

  6. fang says:

    My svn server is
    https://svn.abc.com/dge
    When I double-clicked the repository entry, I got a popup message:

    Error validating server certificate for 'https://svn.abc.com:443':

    – The certificate is not issued by a trusted authority. Use the

    fingerprint to validate the certificate manually!

    Certificate information:

    – Hostname: svn.abc.com

    – Valid: from Mon, 01 Nov 2010 08:21:43 GMT until Tue, 03 Nov 2015 21:15:46 GMT

    – Issuer: Equifax Secure Certificate Authority, Equifax, US

    – Fingerprint: b5:06:25:8d:4a:c2:62:e3:36:be:87:fe:87:63:bb:f4:7d:ac:85:01

    (R)eject, accept (t)emporarily or accept (p)ermanently? svn: OPTIONS of 'https://svn.abc.com/dge': Server certificate verification failed: issuer is not trusted (https://svn.abc.com)

    As result, no directories showed up in the navigation area. I can type 'https://svn.abc.com/dge' in 'Connect to servers' under 'Go' menu to open the repository in a window that contains all the subdirectories. How should I modify the 'servers' file in the .subversion directory to get svnX to work?

    Thanks.

    Fang

  7. anon says:

    It's a clunky interface not like the file-system-integrated solution on windows.

    Think I'll go back…

  8. Kamarshad says:

    This is one of the greatest tutorials I have seen ever. Could you please tell us what the lock/unlock file shown under the SvnX means?

    Any help would be appreciated…..

Leave a Reply