我正在使用最新版本的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
答案 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时,SVN会引发错误,指示(copy_of_sub_dir_a的)修订版本与root_dir应当的版本不匹配。 解决此问题的正确方法是不要将sub_dir_a作为root_dir存储库的一部分-应该将其删除/移动而不是复制。