我有使用pysvn的python脚本,并检出或更新从本地仓库获得的本地副本。
client.checkout(url,
path,
revision=pysvn.Revision(pysvn.opt_revision_kind.number, RevNumber),
ignore_externals=False)
我在没有安装subversion的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有关?
解决这个问题将有助于我回答基本上同一主题的previous post
答案 0 :(得分:1)
这是因为你的Ubuntu正在使用太旧版本的SVN API访问repo。
Windows一个很好,因为它显然使用的是较新的版本。
Windows二进制工具包
注意:这些Windows套件都是你的 需要。没有必要安装 任何Subversion工具包。
和
Mac OS X二进制套件
注意:这些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 Client。显然你可以等到Nix版本的PySVN更新,或者找到另一个SVN工具......