1. Home
  2. Tutorials
  3. SVN: Rabbit VCS
Yolinux.com Tutorial

Subversion Client: Rabbit VCS

RabbitVCS is a Subversion client for integrated use with the Gnome file browser Nautilus.
RabbitVCS is written as a Nautilus plug-in and written in python.

RabbitVCS description:

RabbitVCS is a Subversion client for the Gnome file browser Nautilus.
RabbitVCS is written as a Nautilus plug-in and written in python. RabbitVCS is intended to operate like TortoiseSVN.


RabbitVCS Installation:

Installing RabbitVCS http://www.rabbitvcs.org on RHEL/CentOS 5.4
Installed RPM package prerequisites: nautilus-devel, meld (EPEL rpm) and python-configobj

Build nautilus-python from source:

http://ftp.gnome.org/pub/GNOME/sources/nautilus-python
wget http://ftp.acc.umu.se/pub/GNOME/sources/nautilus-python/0.5/nautilus-python-0.5.0.tar.gz
tar xzf nautilus-python-0.5.0.tar.gz
cd nautilus-python-0.5.0
./configure --prefix=/opt
make
make install
Note: This requires allot of package dependencies and development libraries. All dependancies are available on the RHEL/CentOS 5 installation CD. Also note that gcc-c++ and the libstdc++ libraries were also required.

Pysvn:

http://pysvn.barrys-emacs.org/
wget http://pysvn.barrys-emacs.org/source_kits/pysvn-1.6.3.tar.gz
tar xzf pysvn-1.6.3.tar.gz
cd pysvn-1.6.3
cd Source
python setup.py backport
python setup.py configure
make
mkdir /usr/lib/python2.4/site-packages/pysvn
cp pysvn/__init__.py /usr/lib/python2.4/site-packages/pysvn
cp pysvn/_pysvn_2_4.so /usr/lib/python2.4/site-packages/pysvn

[Potential Pitfall]: The "make" attempt may fail due to an error that the library refered to by "-lcom_err" could not be found. The Makefile is generated by "python setup.py configure" and can be edited. I removed "-lcom_err -lneon -lssl" to achieve a proper compile.

RabbitVCS:

wget http://rabbitvcs.googlecode.com/files/rabbitvcs-0.13.2.tar.gz
tar xzf rabbitvcs-0.13.2.tar.gz
cd rabbitvcs-0.13.2
python setup.py install

Deploy:
  • For each user (or /etc/skel) create ~/.nautilus/python-extensions
  • Single user: cp rabbitvcs-0.13.2/clients/nautilusold/RabbitVCS.py ~/.nautilus/python-extensions
  • System users copy to /usr/lib/nautilus/extensions-2.0/python
    On RHEL4 we only had the extensions-1.0 directory, thus create the following directory:
    mkdir -p /usr/lib/nautilus/extensions-2.0/python

Nautilus version notes: (Rabbit build generates two versions: nautilusold and nautilus)
  • nautilusold: 2.22.0 or older (note: RHEL5 uses nautilus 2.16.2)
  • nautilus: 2.22.0 or newer

Using Rabbit VCS:

Restart nautilus:
  • nautilus -q
  • nohup nautilus > /dev/null &

Right click on a file or folder within the GNome Nautilus file browser to access the Subversion menu:

Rabbit VCS Nautilus interface

Selecting "Log" brings up the following:

Rabbit VCS log viewer interface

Selecting "Properties" (first "Properties" menu item) brings up the following:

Rabbit VCS propterties editor

Links:

Book imageBooks:

Version Control with Subversion
by C. Michael Pilato
ISBN #0596004486, O'Reilly Press

Amazon.com
Practical Subversion (Expert's Voice in Open Source)
Garrett Rooney
ISBN #1590592905, Apress

Amazon.com
Subversion Version Control: Using the Subversion Version Control System in Development Projects
William Nagel
ISBN #0131855182, Prentice Hall PTR

Amazon.com