Svn 只有在X到Y版本之前已从<;合并时,才能使用重新整合;URL>;重新整合来源,但事实并非如此

Svn 只有在X到Y版本之前已从<;合并时,才能使用重新整合;URL>;重新整合来源,但事实并非如此,svn,tortoisesvn,Svn,Tortoisesvn,一直在使用SVN分支与乌龟1.6。我定期将主干合并到分支中,以使其保持最新 今天,我想我应该重新整合分支机构。我从Tortoise选择了“重新整合分支”,并收到以下错误消息: 仅当4709至5019修订版之前已从http://subversion/svn/saxdev/trunk重新整合源,但情况并非如此 然后它列出了大约50个文件,描述如下: 错误:branchs/qst/kobalt/sax/businessobjects/util/HistoryParent.java 错误:缺少范围:/t

一直在使用SVN分支与乌龟1.6。我定期将主干合并到分支中,以使其保持最新

今天,我想我应该重新整合分支机构。我从Tortoise选择了“重新整合分支”,并收到以下错误消息:

仅当4709至5019修订版之前已从
http://subversion/svn/saxdev/trunk
重新整合源,但情况并非如此

然后它列出了大约50个文件,描述如下:

错误:branchs/qst/kobalt/sax/businessobjects/util/HistoryParent.java

错误:缺少范围:/trunk/kobalt/sax/businessobjects/util/HistoryParent.java:4709-5018

修订版5019是标题修订版。 修订版4737是我创建分支时的修订版

我从4737版的日志中找到了这个

操作:添加路径:/branchs/qst从路径:/trunk复制

对我来说,那个错误消息说分支最初不是来自主干,这是不正确的


有什么想法吗?

实际上,我使用“合并两个不同的分支”选项将主干和分支合并到我的工作副本中,从而修复了它。然后我把它放在行李箱里


奇妙的[[虽然我的解决方案在过去对我起作用,但它可能会导致现代的VPN客户端产生不正确的结果。在我们的例子中,合并错误似乎是混淆了我们的Svn历史而不是真实活动的自动化的副产品。我将此留给后代,但请考虑接受的答案。[] /强> < /P> 我的解决方案是删除以某种方式附加到层次结构中各个文件的任何
svn:mergeinfo
属性

svn merge --reintegrate svn+ssh://svn/usr/local/svn/repos/all/trunk 
svn: Reintegrate can only be used if revisions 18765 through 18921 were
    previously merged from svn+ssh://svn/usr/local/svn/repos/all/trunk to the
    reintegrate source, but this is not the case:
trunk/proj/src/main/java/com/foo/furniture.java
Missing ranges: /trunk/proj/src/main/java/com/foo/furniture.java:18765-18920
要查找包含mergeinfo信息的文件,可以执行以下操作:

cd ~/svn/branches/2.7
svn propget -R svn:mergeinfo .
然后,您可以删除mergeinfo属性:

svn propdel svn:mergeinfo proj/src/main/java/com/foo/furniture.java ...
svn commit -m 'removed mergeinfo' proj/src/main/java/com/foo/furniture.java ...

完成此操作后,我的合并执行得很好。

如果您正在处理一个分支,并且一直与其他工作保持同步,那么当您创建主干的工作副本并尝试重新整合分支时,如果您收到以下消息,您可能会感到困惑:

$ svn merge --reintegrate https://server.blah/source/orb/branches/bronze_services
svn: Reintegrate can only be used if revisions 650 through 694 were previously merged from
     https://server.blah/source/orb/trunk to the reintegrate source, but this is not the
     case:
  branches/bronze_services/occl
    Missing ranges: /trunk/occl:650-693
property 'svn:mergeinfo' deleted from 'userdata\usermanagementservice'.
property 'svn:mergeinfo' deleted from 'userdata\auto_create_db.sql'.
property 'svn:mergeinfo' deleted from 'userdata\create_audit_tables_triggers_uds.sql'.
我在谷歌上看到了许多变通方法,但它们让我感到紧张,因为它们是“黑客”。为了解决这个问题,我决定做subversion在消息中暗示的事情。我回到我的分支,明确合并了指定的修订:

$ svn merge -r 650:693 https://server.blah/source/orb/trunk
$ svn commit -m 'merged revisions 650:693 from trunk'
    Sending        occl
Committed revision 695.
一旦我这样做了,我就能够返回到trunk的工作副本,并毫无问题地重新整合分支


如果您尝试将您的分支重新整合到主干,并且您看到来自Ortoisesvn的类似错误,我希望这会有所帮助:

单击错误文本并按CTRL+A、CTRL+C复制所有文本

将文本粘贴到此PowerShell脚本的here字符串中:

@"
Command: Reintegrate merge http://svn.cloudcorp.com/branches/myproject into C:\Users\iain\Documents\Repositories\CloudCorp\trunk  
Error: Reintegrate can only be used if revisions 18089 through 18612 were previously  
Error:  merged from http://svn.corp.skyscanner.local/svn/SkyScannerDatabase/trunk to  
Error:  the reintegrate source, but this is not the case:  
Error:    
Error:  branches/myproject/userdata/usermanagementservice  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/usermanagementservice:18365,18404  
Error:    
Error:  branches/myproject/userdata/auto_create_db.sql  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/auto_create_db.sql:18406  
Error:   
Error:    
Error:  branches/myproject/userdata/create_audit_tables_triggers_uds.sql  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/create_audit_tables_triggers_uds.sql:18406  
"@ -split "`n" |
? { $_ -match ('Error: +branches') } |
% { $_.Substring($_.IndexOf('userdata')) } |
% { "svn propdel svn:mergeinfo $_" }
该脚本提取有问题的文件的相对路径mergeinfo,并输出一个命令列表来修复每个路径

您可能需要更改
'userdata'
值以适应您的存储库结构

执行脚本以输出删除问题合并信息所需的命令

在本例中,脚本将生成以下输出:

svn propdel svn:mergeinfo userdata/usermanagementservice  
svn propdel svn:mergeinfo userdata/auto_create_db.sql  
svn propdel svn:mergeinfo userdata/create_audit_tables_triggers_uds.sql  
在命令提示下,您可以导航到分支库(myproject)并执行命令删除问题合并信息

您应该看到如下输出:

$ svn merge --reintegrate https://server.blah/source/orb/branches/bronze_services
svn: Reintegrate can only be used if revisions 650 through 694 were previously merged from
     https://server.blah/source/orb/trunk to the reintegrate source, but this is not the
     case:
  branches/bronze_services/occl
    Missing ranges: /trunk/occl:650-693
property 'svn:mergeinfo' deleted from 'userdata\usermanagementservice'.
property 'svn:mergeinfo' deleted from 'userdata\auto_create_db.sql'.
property 'svn:mergeinfo' deleted from 'userdata\create_audit_tables_triggers_uds.sql'.

如中所示,现在您应该将更改提交到分支并尝试再次重新整合。这次应该可以了!

请参阅我的答案,了解我在类似案例中的经验。我不确定这是否是您问题的根源,但当两个更改相互取消时,Subversion 1.8确实与mergeinfo有问题。

仅此而已按照SVN告诉你的去做

  • 合并SVN告诉您的回归中的分支
  • 从分支到主干的重新整合

  • 我遇到了这个问题。我在我的分支上做了一个SVN日志,以查找我是否已将主干合并到分支

    我注意到了所有的修改

    然后,我通过手动指定修订将分支合并到主干。我指定了所有范围以排除合并主干时的修订。我成功地合并了分支

    我不得不在mergeinfo上做一些恢复,但是我的代码被合并了


    我立即删除了我的分支。

    在tortoise SVN中对我有用的东西:不要合并分支中的所有修订,而是选择特定范围并手动选择分支中的所有修订。

    我在使用分支的部分签出后出现此错误。我使用主干更新分支,但未签出的分支部分的主干修订当然不会更新。修复方法是对分支进行完全签出,然后合并所有主干更改。将这些更改提交到分支我可以成功地将分支合并到主干。

    我知道这是一篇旧文章,但我也在努力解决这个问题,直到我发现错误消息中列出的文件存在SVN属性问题

    我右键单击了有问题的文件:TortoiseSVN>Properties,发现该文件有两个svn:mergeinfo,其中一个没有从数据继承。因此我删除了该mergeinfo

    我使用TortoiseSVN 1.12.2,构建28653-64位。

    解决了这个问题

    • 陆龟VN 1.9.7,构建27907-64位,2017/08/08 19:34:38
    • Subversion 1.9.7-发布
    • 4月1.5.2日
    • 4月1.5.4日
    • 农奴1.3.9
    • OpenSSL 1.0.2l 2017年5月25日
    • zlib 1.2.8
    • SQLite 3.14.1
    右键单击要合并的分支(但收到此消息),选择“更新到修订版”选项,然后在打开的对话框(下面的屏幕截图)上选择这些修订版,然后单击“确定”-所有以前的修订版