I’ve been porting some old Windows & DOS code into the Linux environment. For anything other than the most trivial of software projects it is advisable to use some form of software version control. A good version control system will allow you to store ‘snapshots’ of the code base as you progress through the development cycle. You can go back to a previous version of a file (or even all the files in a particular build of your project) very easily, and you can do things like compare two different versions of the same file for differences. Your version control system should also handle branches in the code base and, although I’m working on my stuff solo, it should allow easy collaboration between team members who are working on the same software project.
Subversion is a well known and highly respected, free and open source version control system. It is often referred to as SVN. Because it is such a richly featured and powerful system there is a fairly steep learning curve associated with its use. Nevertheless once you have it mastered it more than repays that learning effort. Subversion is used by the likes of the Apache Software Foundation (who maintain it), Free Pascal, FreeBSD, GCC, Django, Ruby, Mono, SourceForge, ExtJS, Tigris.org, PHP and MediaWiki. Serious players.
Out of the box, Subversion is completely command line driven. Even for a CLI freak like me it is sometimes more convenient to drive Subversion through a GUI. As you would expect there are plenty of Linux front-ends for Subversion. I’d used an excellent Windows-based one called TortoiseSVN. TortoiseSVN provides a set of extensions to the Windows explorer that provide access to the SVN functionality and which could be directly applied to files and folders. I was cock-a-hoop to find a clone of TortoiseSVN for Linux, called RabbitVCS.
The easiest way to install Subversion is to use the Ubuntu Software Centre. Search for Subversion and install it. Simple.
Installing RabbtVCS is slightly more involved. You need to add the RabbitVCS repository to your system.Open a terminal and type:
sudo add-apt-repository ppa:rabbitvcs/ppa
sudo apt-get update
When you next open the Ubuntu Software Centre you will see a RabbitVCS entry in the left-hand pane. Highlight that and you will see a list of the RabbitVCS components that you can now install. I only use the Nautilus file manager and I don’t program in Python. The whole point (for me) of using RabbitVCS is to avoid using the command line, so I didn’t install the CLI, Thunar and Python modules. I do use Gedit though so I installed the Rabbit Core, Nautilus and Geany modules.
Now, when I right-click a file or folder there is a RabbitVCS entry in the context menu, with differing sub-menus according to whether the folder or file I have clicked on is versioned or unversioned, whether it is up to date in my Subversion repository and so on.
Subversion is great, Subversion with RabbitVCS is magnificent. You have access to the functionality you need when and where you need it – right in your editor and in the Nautilus file manager.
One final note – I couldn’t locate any decent RabbitVCS documentation, but as it is almost a 100% clone of TortoiseSVN, I downloaded a PDF of their user guide. It is close enough to be useful.