...making Linux just a little more fun!

App of the Month

By Maxin B. John

RapidSVN

Subversion is the fastest-growing Software Configuration Management system for distributed development teams and is presently the most successful version control system in the Free Software arena. RapidSVN is a GUI front-end for Subversion which is available for a number of platforms; this piece of sofware makes life easy for the programmers who work in a collaborative working environment. Subversion development was started in 2000 by CollabNet Inc., with the aim of creating a 'better CVS'.

The first checkout

A Subversion repository is a logical grouping of project-related files on the server. Subversion repositories can be accessed through many different methods like on the local disk using the file:// URL, or through various network protocols - e.g., by using http://, https://, svn:// or svn+ssh:// depending upon how the repository is configured.

A Subversion checkout will create a local working copy (sandbox) of a repository. If you're participating in a coding project, this is the set of the project code files that you are going to modify.

To checkout a working copy using RapidSVN, do the following:

   1. Click on the 'Repository' menu
   2. Click on the menu item 'Checkout'
   3. Enter the URL of the Subversion repository in the 'URL Text box'
   4. Select a local directory for your sandbox 
   5. Click the 'OK' button

And that's done.

checkout

Modifying the source

RapidSVN doesn't include an editor application for modifying the source code; to do that we need to edit the preferences to use our favourite editor. For editing purposes, I would suggest 'gedit' as it is simple and elegant.

edit

diff

RapidSVN allows us to choose our favourite diff viewer as it doesn't include a diff viewer application by default. So again, we will be required to edit the preferences. I personally like meld, which is a visual diff and merge tool written in the Python programming language.

diff

Commiting the modifications

An svn commit operation publishes changes to any number of files and directories as a single atomic transaction. Now it is time for us to submit the changes that we have done to the central repository in which we have a subversion user account with necessary permissions. Don't forget to provide useful comments to describe the modifications that you have made in the source before committing it. This will help others (and also you after a long time!) to understand the source code modifications that you have made.

Now update the working copy and if there are no conflicts, you will be able to commit the modifications to the central repository.

commit

Conclusion

RapidSVN provides a fast, efficient, and powerful GUI for the Subversion user. At present, SourceForge.net, Google Code, Apache Software Foundation, KDE, GNOME, GCC, Python, and Mono etc. have adopted Subversion as their preferred version control system. Subversion provides improved facilities and performance when compared to CVS. Even the Linux Gazette team is using Subversion for collaborative editing - so SVN is one of the tools that brought you this very article!

Talkback: Discuss this article with The Answer Gang


Bio picture

I am an ardent fan of GNU/Linux from India. I admire the power, stability and flexibility offered by Linux. I must thank my guru, Mr. Pramode C. E., for introducing me to the fascinating world of Linux.

I have completed my Masters in Computer Applications from Govt. Engineering College, Thrissur (Kerala, India) and am presently working at Ushus Technologies, Thiruvananthapuram, India, as a Software Engineer.

In my spare time, you can find me fiddling with Free Software, free diving into the depths of Ashtamudi Lake, and practicing Yoga. My other areas of interest include Python, device drivers, and embedded systems.


Copyright © 2008, Maxin B. John. Released under the Open Publication License unless otherwise noted in the body of the article. Linux Gazette is not produced, sponsored, or endorsed by its prior host, SSC, Inc.

Published in Issue 147 of Linux Gazette, February 2008

Tux