我有使用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/

10-11 22:48