我有一个干净的分支结账(没有修改),但是我无法将主干重新集成到我的分支中,因为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
答案 0 :(得分:20)
看起来你不是唯一有这个问题的人。
修复方法是使用等效的svn update --ignore-externals
答案 1 :(得分:3)
我找到了另一种解决方案,--allow-mixed-revisions
:
svn merge -c7777 https://repo/app/branches/1.0 . --allow-mixed-revisions
更新时忽略外部效果并没有解决我的问题,即使我做了一个全新的结账。
答案 2 :(得分:2)
请注意,自Subversion 1.7.0以来,此问题已得到修复。从那以后svnversion
(以及合并逻辑)在确定修订时忽略文件外部。
答案 3 :(得分:0)
即使在更新/推送我的整个存储库后,我也收到此错误消息,只是为了重命名文件夹。重命名之前再次更新文件夹对我来说已经解决了这个问题。