I have to check-in my work into a main svn repo, so I had to setup hgsubversion plugin for Mercurial. That is fine, I cloned the plugin from bitbucket, added the [extensions] hgsubversion = /path/to/hgsubversion, but when I want to use this, I get the following error:
abort: no compatible bindings available:
Subversion 1.5.0 or later required, but no bindings were found
Subvertpy 0.7.4 or later required, but 0.7.3 found
Please install either Subvertpy or the Subversion Python SWIG bindings!
My workstation uses the SVN 1.6.1 and yesterday the system administrators installed the newest subverpty (0.9.0) packets for me.
What should I do now?
CodePudding user response:
The answer to this question is likely to be rather specific to your setup.
First, a bit of context: Although Mercurial is written in Python, it doesn't rely exclusively on the regular PYTHONPATH
logic for finding its libraries. Instead — to work more like a normal utility — the installed script will modify Python's sys.path
to ensure that the directory containing the Mercurial libraries appears first. As a result, if a Mercurial extension attempts to import a third-party library, it'll find one installed in the same location as Mercurial first.
So, who installed Mercurial and Subvertpy 0.7.3? Perhaps they both came from system packages in /usr
, and Subvertpy 0.9.0 was custom-built and installed into /usr/local
? If so, ask your administrator to uninstall Subvertpy 0.7.3.
Alternatively, you can ask your administrator to install the regular (SWIG) bindings for Subversion. They'll be slightly slower and leak memory for long-running conversions, but other than that they should work fine.