SVN目录很容易在计算机之间移动,但这可能导致工作副本和已安装的svn客户端之间的版本不匹配,从而导致错误
svn: This client is too old to work with working copy '.'; please get a newer Subversion client
在一个完美的世界中,人们可以安装更新版本的SVN客户端,但是当这不可能或不方便时,能够将工作副本降级到安装的客户端版本会更好 - 特别是当你知道没有正在使用更高版本的功能.
只有在有问题的工作副本没有任何更改的情况下,使用旧客户端签出新的工作副本才有效,并且不会太大而不会造成不便.
想象的场景将是这样的:Joe向您发送一个包含大量嵌套目录(以及关联的版本化.svn文件夹)的大型工作副本.你正在努力.当你尝试提交它时,svn告诉你你的客户太旧了.不应该将它发回给Joe.不需要检查新的工作副本,并且在任何情况下合并这些更改都是不方便的.
有办法做到这一点吗?
简短的回答:这不是微不足道的.
幸运的是,开发人员预见到了这个问题,并在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.py1.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创建的项目文件中的.svn文件夹,并使用1.6重新添加了解决方案.这对我有用,希望它可以帮助别人.