1

我有 python 脚本,它使用 pysvn 并检查或更新从本地 repo 获得的本地副本。

client.checkout(url, 
path,
revision=pysvn.Revision(pysvn.opt_revision_kind.number, RevNumber),
ignore_externals=False)

我在没有安装颠覆的 Windows 机器上运行它。用于获取实际 repo 副本的 svnsync 是在另一台机器上完成的。有了这个,我假设 PySVN 不需要安装 SVN 就可以从包含 svnsync 结果的文件夹中检出或更新。

当在 Windows 中某些 repos 的文件具有小写和混合大小写版本时,问题就开始了。Windows 在更新或创建两个大小写不同的文件时会出错,所以我跳进 Ubuntu 运行我的脚本。

在 Ubuntu 中,使用 pysvn 运行脚本时出现此错误:

pysvn._pysvn_2_6.ClientError: Unable to open an ra_local session to URL
Unable to open repository xxxx
Expected FS format between '1' and '3'; found '4'

经过一番搜索,这似乎是与 svn 1.6 相关的错误消息,但 pysvn 应该支持它并sudo apt-get install python-svn告诉我我有最新版本......

那么,这是因为 SVN 还是 pySVN?如果 windows pysvn 不抱怨它,为什么 Ubuntu 会抱怨呢?或者它是否与机器上的svn有关?

弄清楚这一点将有助于我回答我以前关于同一主题的帖子

4

1 回答 1

1

这是因为您的 Ubuntu 使用太旧版本的 SVN API 访问存储库。

Windows 很好,因为它显然使用的是较新的版本。

根据PySVN 下载页面

Windows 二进制工具包

注意:这些 Windows 套件是您所需要的。无需安装任何 Subversion 工具包。

Mac OS X 二进制套件

注意:这些 Mac OS X 套件是您所需要的。无需安装任何 Subversion 工具包。

但是,来

Linux 二进制套件

它没有提到任何关于不需要 Subversion 的内容。我的猜测是 PySVN linux 需要颠覆,因此只使用 1.5.x

除此之外,它只说

针对 Subversion 1.5.6 和 Subversion 1.6.5 构建

适用于 Windows 和 Mac OSX,不适用于 Linux

您需要在 Ubuntu 上安装支持更新的 repo 格式的 SVN 客户端。显然你可以等到 PySVN 的 Nix 版本更新,或者找到另一个 SVN 工具......

于 2010-02-04T03:44:55.007 回答