Hi all, you may have noticed me rummaging around lately. I’ve been pretty much absent for a handful of years, but I got an itch recently to get back involved. Thanks go to Daniel for picking up the slack while I and others were dormant and moving us into modern times with Github!

My goal with this release was to get RabbitVCS running fairly well on modern systems, to merge in the many generously contributed (and long ignored) pull requests that have accumulated the past few years, and to fix as many bugs as I could find and reproduce. I went through most of the issues backlog to pick off what I could with limited time, and I feel like I reached a pretty good checkpoint to create a tag. There are a few minor enhancements in the mix, but this contains mostly fixes for bugs and crashes. You can grab the v0.17 files here.

Regarding packages, Jason has stepped down as our resident packager for Ubuntu. He’s done a great job over the years and I’m not really sure what’s going to happen with that. If someone wants to step up I’m glad to help them however I can. There are also packages in Fedora that we’ll want to update, though I don’t have a hand in that. In the meantime, I would advise you to just install manually using the updated README as your guide. The only changes in terms of dependencies listed is tkinter for python, which was unfortunately added for some one-off (though useful) git client changes. I’d like to eventually replace these with gtk+ dialogs.

As for the future, here is a short list of some goals I have:

One pull request I merged introduced some modifications that should help with an eventual shift to python3, which I’d like to complete at some point.

Move us entirely onto Gtk+3 and gobject introspection, as we’re currently stuck with pygtk2 for our dialog windows.

Improve the performance and memory usage of the Nautilus extension, which should help with larger repositories. In addition, I found a bug in Nautilus that is preventing our context menus from working fully correctly and I’m hoping to get that resolved soon for a future Nautilus release.

Regarding the wiki and website, they are quite out-dated and I’d like to move the wiki to Github and consolidate a bit.

Hopefully get the Gedit plugin working again. It broke when they switched to python3. I spent a little time on it but it seems like there were underlying changes to the Gedit plugin API and I don’t have the time right now to dive in.

So there is lots to do just to stay above water level here, and I can’t promise what will get done. New features will probably be on hold until some of these more important things happen, so feel free to jump in.

This one has been a long time in coming, but here is the release for RabbitVCS v0.15.1. This is one of our less focused releases, and is really more of a development snapshot so people can get the bug fixes and new features we’ve been working on. Here’s a quick list of changes:

Added an OSX Finder extension! Thanks to Marianne Gagnon (auria.mg) for your work on this, it is really wonderful to see. It is still a little experimental and might need some polish, but people are welcome to try it and hack on it.

Updated the Gedit plugin to work with Gedit3

Added a mercurial status checker to the nautilus extension (does not include context menu or functionality)

Andreas has done a lot of work on our Git support, improving formatting and adding progress bar support to our notification dialog (Thanks Andreas!)

Also a quick note. Now is a great time to start contributing to RabbitVCS if you’ve been wanting to. There is still a lot to do: new features to add and bugs to fix! Get in touch with me if you want any help and I’ll be glad to give it. Remember, this is a community effort and you can help to make RabbitVCS work for you.

hi all, thanks go to rkrug, basil2, and macavity for helping me figure
out what why we were seeing seg faults in nautilus. The problem seems
to affect people with python-gtkspell installed. That is a static
module that uses static gtk as a dependency, and when it tried to
import gtk it would create a seg fault. Unfortunately, there doesn’t
seem to be dynamic bindings for gtk spell module so I’ve disabled it
for Nautilus 3 users. This update should also fix the issue where it
would report that it couldn’t load certain svg or svgz files.

The new tarball (hopefully the last for a while) is up now on our
download section.

hi all, so I’ve made yet another packaging related release with v0.15.0.4 which fixes some minor issues. I also found out that if you are installing from the tarball on Ubuntu, then you need to add an argument to the setup.py call, otherwise it will ignore the system prefix and use /usr/local no matter what, which will cause many problems.

hi all, I just wanted to explain why so many of you are getting segmentation faults when you try to run the nautilus 3 client.

The pygtk world used to be quite simple and nice, with good documentation and well known best practices. These were “static” gtk bindings that someone had to set up by hand (including me for nautilus-python). These bindings were a pain in the butt to maintain over time but they worked pretty well and were predictable (good for coding against them). However, a couple years ago the pygtk maintainers decided to abandon these bindings and start from scratch with “dynamic” bindings that would execute the original C code of the gtk library, which would have the effect of dramatically reducing the amount of hand-written binding code the pygtk developers would have to maintain. These new dynamic bindings have been released for a while but are still pretty new to the world, but for the most part they work pretty well. As you might be able to tell, the original Nautilus extension used the static pygtk bindings to run, and the new Nautilus 3 extension uses the new dynamic bindings to run.
Running Nautilus 2 with the static bindings works great, and running Nautilus 3 with the dynamic bindings works great as well, but problems start to occur when you try to run Nautilus (2 or 3) with both the static and dynamic bindings at the same time (this is possible). Unfortunately this is what is happening for many of you right now. Some extensions are written with the expectation that they can run with a mix of static and dynamic bindings, and if Nautilus 3 loads extensions that try to use the static and dynamic versions of a set of bindings at the same time, it will crash.

I’m not entirely sure what the solution to this is, though it will become less of a problem over time, as people switch completely over to the dynamic bindings. However, for now, things will be a bit messy and you will have to decide which extensions you want to run. Right now, the Nautilus 3 RabbitVCS extension uses dynamic bindings. If you see the following error:

Then it means you have another extension running that is trying to use the static bindings. If you see this error (check in ~/.config/rabbitvcs/RabbitVCS.log) and your Nautilus isn’t able to run, first disable all nautilus-python extensions, then try to run RabbitVCS again. Then one-by-one, enable your other extensions until Nautilus crashes again. You should then report the issue either to myself or to the maintainer of said extension.

Hopefully this will resolve itself within a year or so, but until then it will be a somewhat bumpy ride.

This release is mainly focused on adding Nautilus 3.0 support with the
new nautilus-3.0 client extension. However, there are quite a few bug
fixes and changes in there as well, including migrating from Glade to
GtkBuilder for dialogs.

Hi all, sorry for leaving everyone hanging for so long. I’m still alive, but I haven’t been working on RabbitVCS much over the past several months and because of that, there hasn’t been much to say. The good news is that I’ve just released nautilus-python 1.1, which adds pygobject 3 compatibility (needed for GNOME 3.2), and I’ve fixed some major bugs in the RabbitVCS Nautilus 3 extension, which gets it working pretty well for me in GNOME 3.0 and GNOME 3.2. There is a good chance I’ll do a release soon, just to get GNOME 3.x working for all of you who have been patiently waiting. This release might not have many other fixes or enhancements to speak about, but it will at least get things moving in the right direction.