我有使用pysvn的python脚本,签出或更新了从本地存储库获得的本地副本。
client.checkout(url,
path,
revision=pysvn.Revision(pysvn.opt_revision_kind.number, RevNumber),
ignore_externals=False)
我在尚未安装Subversion的Windows机器上运行此程序。用于获取实际回购副本的svnsync是在另一台计算机上完成的。
这样,我假设PySVN不需要安装SVN即可从包含svnsync结果的文件夹中检出或更新。
在Windows中,某些存储库包含小写和大小写混合版本的文件时,问题就开始出现。在更新或创建大小写不同的两个文件时,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
最佳答案
这是因为您的Ubuntu正在使用版本过旧的SVN API访问存储库。
Windows之一很好,因为它显然是使用较新的版本。
根据PySVN download page:
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工具...
关于python - PySVN是否需要安装Subversion?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2197156/