我有一个干净的分支结账(没有修改),但是我无法将主干重新集成到我的分支中,因为SVN认为我有一个混合版本的工作副本:
c:\myproject> svnversion
2045:2047
问题似乎是由我的一个外部因素造成的:
c:\myproject> svn propget svn:externals tools
-r1448 ^/tools/external/trunk/gandalf/bin gandalf/bin
-r1508 ^/tools/external/trunk/gandalf/include gandalf/include
-r1508 ^/tools/external/trunk/gandalf/lib gandalf/lib
-r1428 ^/tools/external/trunk/jsdb jsdb
-r2045 ^/tools/external/trunk/java/lib/jing.jar jing.jar
您会注意到它们都是目录外部而不是单文件外部,除了jing.jar,这与“svnversion”认为是我工作副本的最低范围的版本相同,这应该是干净的结帐r2047 .
我该如何解决这个问题(除了不使用单文件外部)?
我已经尝试过更新,新的签出和svn清理,它仍然有这个问题 . 我正在使用TortoiseSVN 1.6.12
4 回答
看起来你不是唯一有这个问题的人 .
修复是使用相当于
svn update --ignore-externals
看这里:Reintegrate a branch with externals fails in SVN
我找到了一个不同的解决方案,
--allow-mixed-revisions
:更新后忽略外部并没有解决我的问题,即使我做了一个全新的结账 .
请注意,自Subversion 1.7.0以来,此问题已得到修复 . 从那时起svnversion(和合并逻辑)在确定修订时忽略文件外部 .
甚至在更新/推送我的整个存储库之后,我收到此错误消息只是为了尝试重命名文件夹 . 在重命名之前再次更新文件夹为我修复了这个问题 .