我有一个python脚本,它使用pysvn并签出或更新从本地存储库获得的本地副本。
client.checkout(url,
path,
revision=pysvn.Revision(pysvn.opt_revision_kind.number, RevNumber),
ignore_externals=False)我在一台没有安装subversion的windows机器上运行这个程序。用于获取实际存储库副本的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'经过一些搜索,这似乎是一条与SVN1.6相关的错误消息,但pysvn理应支持这一点,sudo apt-get install python-svn告诉我我有最新版本……
那么,这是因为SVN还是pySVN?如果windows pysvn没有抱怨,为什么Ubuntu one会抱怨呢?或者它与机器上是否有svn绑定在一起?
弄清楚这个问题将有助于我回答基本上相同主题的previous post
发布于 2010-02-04 11:44:55
这是因为您的Ubuntu正在使用太旧版本的SVN API访问存储库。
windows one很好,因为它显然使用了较新的版本。
根据PySVN download page的说法
Windows二进制工具包
注意:这些windows工具包就是您所需要的。不需要安装任何Subversion工具包。
和
Mac二进制工具包
注意:这些Mac OS X工具包就是您所需要的。不需要安装任何Subversion工具包。
但是,来吧
Linux二进制工具包
它没有提到任何关于不需要Subversion的内容。我猜测PySVN linux需要subversion,因此只使用1.5.x
除此之外,它只说
针对Subversion 1.5.6和Subversion 1.6.5构建的
适用于Windows和Mac OSX,不适用于Linux
您需要在Ubuntu上安装支持较新repo格式的SVN客户端。显然,你可以等到PySVN的Nix版本更新,或者找到另一个SVN工具……
https://stackoverflow.com/questions/2197156
复制相似问题