我如何降级SVN工作副本的版本?

SVN目录在计算机之间方便地移动,但是这可能会导致工作副本和安装的svn客户端之间的版本不匹配导致错误

svn: This client is too old to work with working copy '.'; please get a newer Subversion client 

在一个完美的世界里,可以安装一个更新版本的SVN客户端,但是当这是不可能或不方便的时候,能够将工作副本降级到所安装的客户端的版本会更好 – 特别是当你知道没有更高版本的function正在被使用。

如果有问题的工作副本没有任何变化,那么与旧客户端签出一个新的工作副本,并且不会太大以至于不方便。

想象的情景会是这样的:Joe向你发送一个大量的工作副本,其中包含大量的嵌套目录(和相关的版本.svn文件夹)。 你工作。 当你试图提交它,svn告诉你,你的客户端太旧了。 发回给乔不应该是必要的。 检查一个新的工作副本不应该是必要的,合并变化在任何情况下将是不方便的。

有没有办法做到这一点?

简短的回答:这不是微不足道的。

幸运的是,开发人员预料到这个问题,并在FAQ中处理: http : //subversion.apache.org/faq.html#working-copy-format-change
结果是要下载和使用他们的脚本的目的: http : //svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

请注意,该脚本只需要客户端的主要版本号,所以如果您有客户端版本1.4.4,该命令将是:

 python change-svn-wc-format.py <WC_PATH> 1.4 [...other options...] 

更新:

上述脚本只适用于1.6版及以下的版本。 从1.7+降级显然是不可能的。 来源说明:

 # Downgrading from format 11 (1.7) to format 10 (1.6) is not possible, # because 11 does not use has-props and cachable-props (but 10 does). # Naively downgrading in that situation causes properties to disappear # from the wc. # # Downgrading from the 1.7 SQLite-based format to format 10 is not # implemented. 

我刚刚删除了1.7创build的项目文件中的.svn文件夹,并使用1.6重新添加了解决scheme。 这对我工作希望它可以帮助别人。