导致SVN错误“修订版xxx与现有修订版yyy ...不匹配”的原因

时间:2019-06-20 20:28:51

标签: svn checkout co

我正在使用最新版本的SVN检出一些文件(使用“ svn co URL DEST”)。当我这样做时,我看到一条错误消息     “ svn:E155000:修订版11134260与DEST中的现有修订版11075284不匹配”。 但是,如果我使用2011年版本的SVN,则不会收到此错误(即,结帐工作正常)。 有人可以解释此错误消息的含义,以便我更好地解决该问题吗?

我已经尝试过在此处搜索stackoverflow以及Google搜索和SVN文档,但只想出了与进行合并有关的信息,但没有任何内容在结帐时讨论此问题。当然,由于我不完全了解问题,因此我可能没有在寻找正确的东西。

有效的SVN版本是: svn版本1.6.17(r1128011)    编译于2011年6月2日,23:35:08

失败的SVN版本是: svn版本1.11.1(r1850623)    在x86-microsoft-windows上编译于2019年1月9日19:28:50

1 个答案:

答案 0 :(得分:0)

此错误是由于SVN 1.6版和更低版本以及1.7版和更高版本之间的差异引起的。在1.6及更低版本中,属于SVN信息库的每个子目录都有其自己的.svn文件夹。从1.7开始,在工作副本的根目录下只有一个.svn文件夹。 在我们的系统中,主存储库中包含的部分目录结构是

root_dir / sub_dir_a

因此,当我检出root_dir时,会得到sub_dir_a作为子目录。通过我们的构建系统和存储库的发展,sub_dir_a对于root_dir以外的其他项目也变得有用,并且被(错误地)复制到了一个单独的存储库中(我们将其称为copy_of_sub_dir_a),构建系统更改为a)检出root_dir,b)删除sub_dir_a,然后c)将copy_of_sub_dir_a检出到root_dir / sub_dir_a。在SVN 1.6及更早版本中,这将正常工作,因为root_dir仅包含root_dir的信息。从1.7开始,root_dir有一个.svn文件夹,其中也包含有关sub_dir_a的信息,因此,当我们的构建系统尝试检出copy_of_sub_dir_a时,S​​VN会引发错误,指示(copy_of_sub_dir_a的)修订版本与root_dir应当的版本不匹配。 解决此问题的正确方法是不要将sub_dir_a作为root_dir存储库的一部分-应该将其删除/移动而不是复制。