2

I am using RabbitVCS on Nautilus/Ubuntu Gnome 16.10.

My external diff tool is set to point to Meld.

From the Context Menu, when I select View Diff against previous revision, I can see the text based diff.

However, when I select Compare with previous revision, RabbitVCS opens up meld with the message "Files are identical". Both panes display the latest version of the file.

The same holds good from the Show Log window: If I select two versions, Diff Versions works fine, but Compare Versions says "Files are Identical"

I tried the following:

  1. Uninstalling and resintalling Nautilus, RabbitVCS and Meld.
  2. For RabbitVCS, I had initially used a PPA, but then followed these instructions to install directly from the yakkety repository.
  3. Installed libsvn-java as per this link
  4. Created symlinks and downloaded the latest version of RabbitVCS.py as per this link
  5. Checked ~/.config/rabbitvcs/RabbitVCS.log. No errors.
  6. Ran svn upgrade and rebooted.
  7. Changed the external diff tool from Meld to gedit just to check if the problem is with meld. But gedit gave the same results - identical files.

RabbitVCS: Default from Yakkety, 0.16.0
Ubuntu: 16.10
Nautilus: GNOME nautilus 3.20.3

Any help would be appreciated. Is it time to stop using Rabbit....? I hope not.

3 Answers3

4

That's because a bug was introduced in rabbitvcs-core version 0.16-1.1, which is the version in the ubuntu repo for 16.10/yakkety. the bug causes the "compare to previous revision" action to always export the head revision instead of the desired revisions.

Someone wrote a fix that hasn't been accepted yet: here.

One easy solution is just to downgrade rabbitvcs-core to 0.16-1 which works fine and is available in the ubuntu repo for 16.04/xenial. don't forget to mark the package as held afterwards so software updater doesn't upgrade over it.

sudo apt-add-repository "deb http://us.archive.ubuntu.com/ubuntu xenial universe"
sudo apt install rabbitvcs-core=0.16-1
sudo apt-mark hold rabbitvcs-core
Ravexina
  • 55,668
  • 25
  • 164
  • 183
migo
  • 56
  • It's a shame that two years later this bug is still not solved. – ffonz Apr 03 '19 at 22:12
  • It seems the bug is still there. When i try to use "sudo apt install rabbitvcs-core=0.16-1", i get "E: Version '0.16-1' for 'rabbitvcs-core' was not found" – Evgeny Erlihman May 01 '19 at 14:22
  • I just ran into this after upgrading 16.04 to 18.04. It's ridiculous that this bug has lasted this long. I reported it on Ubuntu's bug tracker here: https://bugs.launchpad.net/ubuntu/+source/rabbitvcs/+bug/1828927 – dougg3 May 14 '19 at 05:20
  • I think it is the same symptoms but not the same root cause. I added a comment with some findings in the link above. – Evgeny Erlihman May 16 '19 at 12:56
  • Hmm...it's the same root cause for me, because if I manually apply the linked GitHub patch to my Ubuntu 18.04 install, it fixes the problem for me. I'm control-clicking two revisions, and then right-clicking and saying compare revisions. – dougg3 May 16 '19 at 13:31
0

I've found a workaround for this issue, please do the following:

First let's install latest official release from Ubuntu repositories:

sudo apt install rabbitvcs-nautilus

Now let's install some dependencies in order to rebuild rabbitvcs from sources:

sudo apt install python-configobj python-gobject python-gtkspellcheck python-svn subversion python-dulwich python-pygments git meld

Get source code, build and install it!

git clone https://github.com/rabbitvcs/rabbitvcs.git
cd rabbitvcs
sudo python setup.py install --install-layout=deb

Now Let's copy RabbitVCS python script to nautilus, so it will appears on nautilus context menu:

cd clients/nautilus/
sudo mkdir -p /usr/share/nautilus-python/extensions/
sudo cp RabbitVCS.py /usr/share/nautilus-python/extensions/RabbitVCS.py

** Now we will restart any nautilus still opened: PLEASE FINISH ANY JOB FIRST **

nautilus -q
pgrep -f service.py | xargs kill

Now just test it!

nohup nautilus > /dev/null &

[ REFERENCES ] RabbitVCS GitHub

meetnick
  • 440
  • 3
  • 17
0

As a workaround, to replicate the fix has been actually very simple:

  • Find where rabbitvcs/vcs/svn/__init__.py has been installed with:

      dpkg -L rabbitvcs-core | grep svn
    
  • Open it for editing, e.g. in my case:

      sudo vi /usr/lib/python2.7/dist-packages/rabbitvcs/vcs/svn/__init__.py
    
  • Find the export method

  • Remove/comment the first line of code, which is the offending one, i.e. revision=Revision("head")

  • Reboot to be on the safe side.

Voilà, working as intended; being a python script you do not need to explicitly rebuild anything (hence you do not need to install building tools nor dependencies).

GozzoMan
  • 101