Preview of RabbitVCS running on Thunar

Posted in Community, Status Update on January 21st, 2010 by Adam Plumb – 7 Comments

Getting RabbitVCS to run on Thunar required me to create python bindings for the Thunar Extension Framework, but that is done now and the thunarx-python bindings are a reality.  I’m in the process of getting the source code hosted on Xfce’s git repository.

With RabbitVCS running on Thunar, we’re a small step closer to one of our big goals, which is to become file manager agnostic.

You can read my post on our mailing list about my trials and tribulations getting this all to work, but RabbitVCS on Thunar is a mixed bag.  On the one hand, I was able to get sub-menus working without having to patch Thunar, but on the other hand, there will be no emblem support for the foreseeable future.  However, one thing that Thunar has that Nautilus does not is a get_dnd_actions call, which asks plugins for menu items for when the user drags and drops an item into a folder. I haven’t implemented it yet, but in the near future this will allow you to move files around in your SVN repository via drag ‘n drop in Thunar.  Also not implemented yet is a property page that reports file status and ownership, etc.  All of that will be ready for the v0.13 release.

For now, I leave you with a short video of RabbitVCS running Thunar.

Get thunarx-python here:  I’ve made a release, and you can get that in the Downloads section in github.  Currently, the only way to install the Thunar extension for RabbitVCS is to check out the latest code from SVN and run the development install.  Instructions for installing a thunarx-python plugin is available in the thunarx-python README file.  If you’re willing to brave the install, I’d love to hear your feedback!

Preview of the Repository Browser for v0.13

Posted in Community, Status Update on January 7th, 2010 by Adam Plumb – 2 Comments

One of the final pieces of the puzzle for v0.13 is the repository browser, and I am quite happy with it.  Sure, I bailed on having a folder tree view, and there is no drap ‘n drop support for moving files around, but overall I think people will find it very useful when v0.13 is released.

Here is a quick ‘n dirty video I made showing some basic functionality.  Hopefully we’ll have an alpha or beta ready for v0.13 and more people can test the new stuff out.

Release announcement for RabbitVCS v0.12.1

Posted in Release on December 1st, 2009 by Adam Plumb – 4 Comments

We are excited to announce the release of RabbitVCS v0.12.1!  This is our first point release of the v0.12 branch and it fixes some big bugs that cropped up after the general v0.12 release.  Here is a list of the most important changes and fixes.

  • (r1791) Merged new SSL client cert prompt into v0.12.1 branch
  • (r1794) Changed “previous log message” UI behaviour. Newlines now replaced by “return key” glyph (U+23CE). Trailing whitespace stripped only from entire message. Fixes issue 184
  • (r1800) Wrong comparison of “name” value returned from property dialog. Fixes issue 186.
  • (r1833) Fix for issue #195.  The checkboxes in the update to revision dialog were inconsistently padded.
  • (r1840) Merge of locale detection/setting fix from main branch.
  • (r1852) Removed extraneous debugging line (merged from trunk).
  • (r1915) Merged change from issue #1856 into v12.1 branch (python 2.4 compatbility fix)
  • (r1917) Added the nautilusold extension code to the v0.12.1 branch
  • (r2030) Fixes bug #1, SSL certificate failure
  • (r2050) Bug fixes and improvements for packaging scripts

Go to

Go to

We now have a working 64bit package for Fedora!  We will have RHEL/CentOS packages soon.

RabbitVCS is a project with the goal of developing a collection of utilities to allow for better client integration with some of the popular version control systems. We currently support the Nautilus File Manager and the Subversion version control system.

The RabbitVCS Team

Any programmers interested in a RabbitVCS sub-project?

Posted in Community on November 16th, 2009 by Adam Plumb – 6 Comments

Do you want to contribute to RabbitVCS, but you want to be in charge of what you’re doing, and you don’t want Jason, Bruce, or myself to get in your hair too much?  Well, one of the great things about RabbitVCS is that we are very modular, and we have grand ideas about what we want RabbitVCS to do, but we just don’t have the time to do it as fast as we want.  Here are some ideas we have for possible sub-projects that Python and C coders can pick up and run with.

Improve the Nautilus extension framework (C Programmers)
The current Nautilus extension framework is quite basic and isn’t really powerful enough for some of the things we would like to do.  The related Python bindings (nautilus-python) would also need to be extended along with it to be useful to us.  Your job would be to write patches for these code bases and possibly become an active maintainer for those projects.  Currently, the nautilus-python project does not have an active maintainer (that I know about)

Create a Thunar extension (C and Python Programmers)
As per our recent name change, our eventual goal is to be file manager agnostic, so RabbitVCS users aren’t stuck with GNOME all the time.  Currently, Thunar has an extension framework that is somewhat similar to Nautilus’s, but they don’t have Python bindings.  Your job would be to create Python bindings for the Thunar extension framework and then port our Nautilus extension code to run on Thunar (should not be difficult).  Or you could just write a C extension and integrate RabbitVCS as much as possible

Create a Dolphin/Konqueror/PCManFM extension (C and Python Programmers)
I don’t know what the current state of any of these file managers are with respect to plugins, but it would be great to create an extension for them.  Like the Nautilus and Thunar extensions, Python bindings would allow you to more easily integrate with our status checker/monitor.  But if you would prefer a C extension we can still integrate with that fairly well.

Create a gedit (or other text editor) plugin (C Programmers, I think)
It should be possible to create a plugin for gedit or any other text editor that puts our main context menu in gedit and launches our ui dialogs.  All it would take is for someone to spend the time getting it to work.

Create a standalone GUI client (Python Programmers)
There are plenty of standalone VCS GUIs out there, but one more won’t kill anyone ;)  Indeed, we could do some pretty cool things with a standalone GUI that we may never be able to do with a file manager extension.  Your job would be to create the GUI (using PyGTK) as you see fit and integrate the RabbitVCS dialogs and other code as much as possible.


These are just some of the ideas I’ve had.  I’m sure there are other good sub-project ideas, so just get in touch with us and we’ll help you get started!

A preview of new log and compare functionality in v0.13

Posted in Miscellaneous, Status Update on October 30th, 2009 by Adam Plumb – 8 Comments

For me, and I think for a lot of other people, one of the key missing pieces of functionality for RabbitVCS v0.12 is robust support for comparing files, folders, and revisions; so this is the first thing I started working on for v0.13.  So far, I’ve updated the log viewer and created a new dialog devoted to comparisons, but I’ll be improving context menu functionality throughout all dialogs.  Here is a video preview of the new log view functionality and the compare dialog.

The RabbitVCS Project as seen by CodeSwarm

Posted in Miscellaneous on October 17th, 2009 by Adam Plumb – Be the first to comment

Today, I happened upon the code_swarm project, which allows you visualize your project’s development over time.  One of the neatest things about it does everything from your repository’s log.  Here is what code_swarm spit out for RabbitVCS.  Pretty cool…

A second extension for older distributions, seeking maintainer

Posted in Community on October 10th, 2009 by Adam Plumb – 1 Comment

Some older distributions, such as RHEL5/CentOS5 and Debian Lenny (and older) just don’t work with the RabbitVCS v0.12 extension code.  One of the problems is that we use code that requires the most recent nautilus-python (the python bindings we use to extend nautilus), and even a relatively recent Nautilus and that code is often not available on older distributions.  In addition, we have several other dependencies in v0.12 that need relatively recent versions to work.

Fortunately, there is a way out.  The NautilusSvn v0.11 extension code is actually quite simple and straightforward, and will work on very old versions of Nautilus and nautilus-python.  So what I have done is set up a second extension folder in our repository called “nautilusold” based on the code from the v0.11 extension, but the nice part is that it connects to all the windows and dialogs in v0.12.  Check out this video of RabbitVCS on CentOS 5.

Right now, this new extension is only available in trunk, and is not packaged, but you can easily install it by replacing the in your extensions folder with the nautilusold/ file.  It is as simple as that!

All is not perfect, however.  As you may have noticed from the video, submenus don’t work quite right in older versions of nautilus-python, so all menu items have to be fit on the main Nautilus context-menu.

Also, since this is an entirely separate module from the standard extension code, it needs to be maintained and hopefully improved.  That is why I’m sending out a call to anyone who is interested that we would love to have someone dedicated to maintaining and improving the nautilusold extension.  I’ve gotten it to a good working state, but there is still plenty to do, such as:

  • Integrate with our v0.12 translations
  • Clean up the menuitems logic code, and possibly figure out a way to use submenus
  • Improve the status monitor to remove the need for the “Refresh Status” button
  • Figure out how to get our existing nautilus extension to work with older distros so we don’t need this second extension.

If anyone is interested in carrying the torch on, please get in touch and I will be happy to get you started.

See RabbitVCS v0.12 in action

Posted in Miscellaneous on October 7th, 2009 by Adam Plumb – 1 Comment

I’ve posted some videos of RabbitVCS in action on Youtube.  Here is the first of the series, checking out a simple working copy from a repository.

Release announcement for RabbitVCS v0.12!

Posted in Release on October 6th, 2009 by Adam Plumb – 5 Comments


We are excited to announce the release of RabbitVCS v0.12!

This release is a complete rewrite of v0.11, and supports nearly all Subversion functionality. In addition, we have support for more languages, have a neat command line utility to interact with our dialogs, and we have several easy to install packages.

Finally, you may have noticed our most visible change, our new name! Our eventual goal is to support multiple version control systems and to even extend other file managers and programs, so we decided on a platform-agnostic name, and our first major release with the new team seemed like the perfect time to make this change.

* Status checks are now done asynchronously and won’t lock up Nautilus
* Lots of bugs have been squashed

* Vastly improved status monitor and emblem support
* Complete rewrite of the Nautilus extension, VCS layer, and user interface
* Nearly full Subversion functionality
* Easy to install packages for Ubuntu, Debian, and Fedora
* Fully internationalized with many translations available
* Command line integration to easily launch our dialog

Go to

Go to

RabbitVCS is a project with the goal of developing a collection of utilities to allow for better client integration with some of the popular version control systems. We currently support the Nautilus File Manager and the Subversion version control system.

The RabbitVCS Team

New architecture: DBUS for background operation

Posted in Community, Status Update on August 11th, 2009 by Jason Heeris – 5 Comments

Good news!

We’ve overhauled the architecture of the NautilusSVN status checker and things are looking better for usability and performance.  To try to solve our performance problems, we basically cheated (bear with me here…)

read more »