1、svn 遇到的问题
出现问题之前:
a、构建服务器上原本的 SubVersion svn(Version Control with Subversion [),版本号:1.7.0(只支持命令行)。
b、为了使用便利,安装一个可视化svn client: TortoiseSVN , 版本号:1.8
TortoiseSVN
A Subversion client for Windows
Version 1.8
出现问题:
这两天自动构建提交项目时候,虚拟机用SVN提交的时候,总是报如下提示:
svn: This client is too old to work with working copy ‘/opt/gforge/www/account’. You need
to get a newer Subversion client, or to downgrade this working copy.
See http://subversion.tigris.org/faq.html#working-copy-format-change
for details.
2、原因:
由于使用高版本的TortoiseSVN提交过代码,导致.svn目录,里面保存着svn需要的一些版本信息,用TortoiseSVN去操作,会在.svn里增加一些文件,
但是另一个svn客户端(SubVersion)不能识别这些新增的文件,所以在命令行不能使用 svn(虽然 TortoiseSVN也支持命令行,但是环境变量配置的是SubVersion的路径。)
参考:http://sducxh.iteye.com/blog/589136
官方解释:http://subversion.apache.org/faq.html#working-copy-format-change
I got an error saying "This client is too old to work with working copy '...' ". How can I fix it without upgrading Subversion?
Sometimes the working copy metadata format changes incompatibly between minor releases. For example, say you have a working copy created with Subversion 1.4.4, but one day you decide to try out Subversion 1.5.0. Afterwards, you attempt to switch back to 1.4.4, but it doesn't work — it just gives the above error.
This is because 1.5.0 upgraded your working copy format to support some new features (in this case, changelists, the keep-local flag, and variable-depth directories). Although 1.4.4 doesn't know anything about these new features, it can at least recognize that the working copy format has been upgraded to something higher than it can handle.
1.5.0 upgraded the working copy for a good reason: it realizes that 1.4.4 does not know about these new features, and that if 1.4.4 were to meddle with the working copy metadata now, important information might be lost, possibly causing corruption (see issue #2961, for example).
Subversion 1.7.0 and newer will not upgrade working copies unless you explicitly ask them to do so. (Upgrading the working copies is, however, required; Subversion 1.7.0 cannot operate on working copies created or used by earlier Subversions.)
Subversion 1.6.x and earlier automatically upgrade working copies when they first touch them. This behavior can be annoying, if you just want to try out a new release of Subversion without installing it permanently. For this reason, we distribute a script that can downgrade working copies when doing so is safe:
http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py
Run that script with the "--help" option to see how to use it. (It can downgrade 1.6.x working copies to formats usable by Subversion 1.4.x and 1.5.x, but cannot downgrade 1.7.x working copies.)
As future versions of Subversion are released, we will try to keep this FAQ entry up-to-date with potential downgrade scenarios and their implications.
解决:将SubVersion 的版本升级到和 TortoiseSVN 的版本一致(1.8.x,x任意都行)。
PS:SVN是一套规范联盟,每个大版本(例如:1.4,1.5,1.6,1.7,1.8)的规范都是固定的,即大版本中的各个小版本的规范相同,而SubVersion 和 TortoiseSVN 都遵守规范。