SVN中无法修复的混合修订工作副本

时间:2011-02-18 20:15:38

标签: svn merge svn-externals

我有一个干净的分支结账(没有修改),但是我无法将主干重新集成到我的分支中,因为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 个答案:

答案 0 :(得分:20)

看起来你不是唯一有这个问题的人。

修复方法是使用等效的svn update --ignore-externals

见这里: Reintegrate a branch with externals fails in SVN

答案 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)

即使在更新/推送我的整个存储库后,我也收到此错误消息,只是为了重命名文件夹。重命名之前再次更新文件夹对我来说已经解决了这个问题。