无法加载Subversion的Python绑定

20 投票
3 回答
6787 浏览
提问于 2025-04-15 15:34

这是关于将一个SVN代码库转换成Mercurial代码库的第二部分内容。

使用的命令是:

hg convert file://c:/svnrepository

但是,我得到的输出是:

assuming destination svnrepository-hg
initializing destination svnrepository-hg repository
file://c:/svnrepository does not look like a CVS checkout
file://c:/svnrepository does not look like a Git repo
Subversion python bindings could not be loaded
file://c:/svnrepository is not a local Mercurial repo
file://c:/svnrepository does not look like a darcs repo
file://c:/svnrepository does not look like a monotone repo
file://c:/svnrepository does not look like a GNU Arch repo
file://c:/svnrepository does not look like a Bazaar repo
file://c:/svnrepository does not look like a P4 repo
abort: file://c:/svnrepository: missing or unsupported repository

我关注的那一行是:

Subversion python bindings could not be loaded

我已经安装了Python 2.5,并且从Subversion网站上安装了Python的Subversion绑定。但是我还是遇到了这个错误。

3 个回答

5
sudo apt-get install python-subversion

在Ubuntu上,这个方法对我有效。

21

我想把评论中提到的实际解决方案提出来,来自Alex Martelli的回答:

根据这个链接,Subversion的绑定已经包含在TortoiseHG里。所以你只需要在TortoiseHG中启用转换扩展。 – tonfa

哦,明白了!又向前迈了一步。我把路径改成指向TortoiseHG里的hg,而不是Mercurial,这样就解决了这个问题。现在它只是认为这个仓库不是SVN的,啊哈! – Paul

这个方法对我也有效。

如果你现在在Windows上使用标准的HG命令行版本,具体步骤是:

  • 安装TortoiseHG
  • 右键点击一个文件 / TortoiseHG / 全局设置... / 扩展 / {勾选“convert”}
  • 确保TortoiseHG是你的hg命令的路径:
    • Win键+暂停 / 高级 / 环境变量 / 系统变量 / Path
    • 从路径中删除C:\Program Files\Mercurial
    • 确保C:\Program Files\TortoiseHG在路径中
14

这个问题的详细解释可以在这里找到,标题是“从Subversion转换”:

要使用Subversion,你需要先安装它的Python绑定。这些绑定是通过SWIG生成的,在Windows上需要单独安装,可以在http://subversion.tigris.org/找到。需要注意的是,使用Win32的Mercurial二进制文件是无法完成这项工作的,因为无法将Subversion的绑定安装到它自带的Python库中。所以,你需要在独立的Python上安装Mercurial。如果你同时安装了Win32的二进制文件,可能还需要像这样设置:“set HG=python c:\Python25\Scripts\hg”,以覆盖默认的Win32二进制文件。对于Mac OS X,最简单的方法是安装CollabNet的Subversion版本,然后将/opt/subversion/lib/svn-python中的内容复制到Python安装的site-package目录下。

不幸的是,使用的组合似乎并没有因为hgsubversion而变得更简单,至少从这篇文章这个讨论来看是这样的(我没有Windows系统来尝试和帮助,唉)。

撰写回答