col*_*ebb 124 svn tortoisesvn
一直在使用Tortoise 1.6的SVN分支机构.我一直在定期将主干合并到分支中以使其保持最新状态.
今天,我以为我会重新融入分支机构.我从Tortoise选择"重新整合分支"并收到以下错误消息:
只有先将4709到5019版本合并http://subversion/svn/saxdev/trunk到重新集成源时才能使用重新集成,但事实并非如此
然后它列出了大约50个文件,其中包含以下描述:
Error: branches/qst/kobalt/sax/businessobjects/util/HistoryParent.java
Error: Missing ranges: /trunk/kobalt/sax/businessobjects/util/HistoryParent.java:4709-5018
修订版5019是主要修订版.修订版4737是我创建分支时的修订版.
我从修订版4737的日志中得到了这个
操作:添加路径:/ branches/qst从路径复制:/ trunk
对我来说,该错误消息表明该分支最初不是来自主干,这不是真的.
有任何想法吗?
Pau*_*ipp 133
如果您正在分支机构并且一直在与其他人一起工作,那么当您创建主干的工作副本并尝试重新集成您的分支时,如果您收到如下消息,则可能会感到困惑:
$ 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
Run Code Online (Sandbox Code Playgroud)
我在谷歌上看到过一些变通方法,但是他们让我感到紧张,因为"黑客".为了解决这个问题,我决定做一下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.
Run Code Online (Sandbox Code Playgroud)
一旦我这样做,我就能够返回到trunk的工作副本并重新集成分支而没有任何问题.
我希望这有帮助
Gra*_*ray 85
[[虽然我的解决方案过去对我有用,但它可能导致现代SVN客户端的不正确结果.在我们的例子中,合并错误似乎是自动化的副产品,它们混淆了我们的SVN历史而不是真正的活动.我将此留给后人,但请考虑接受的答案.]]
我的解决方案是删除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
Run Code Online (Sandbox Code Playgroud)
要查找包含mergeinfo信息的文件,您可以执行以下操作:
cd ~/svn/branches/2.7
svn propget -R svn:mergeinfo .
Run Code Online (Sandbox Code Playgroud)
然后,您可以删除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 ...
Run Code Online (Sandbox Code Playgroud)
完成此操作后,我的合并执行正常.
Iai*_*der 15
如果你试图将你的分支重新集成到trunk,你会看到TortoiseSVN的错误:

单击错误文本,然后按CTRL+ A,CTRL+ C复制所有文本.
将文本粘贴到此PowerShell脚本的here-string中:
@"
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 $_" }
Run Code Online (Sandbox Code Playgroud)
该脚本提取具有问题mergeinfo的文件的相对路径,并输出命令列表以修复每个文件.
您可能必须更改'userdata'值以适合您的存储库结构.
执行脚本以输出删除问题mergeinfos所需的命令.
在此示例中,脚本将生成此输出:
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
Run Code Online (Sandbox Code Playgroud)
在命令提示符下,您可以导航到分支库(myproject)并执行命令以删除问题mergeinfos.
你应该看到这样的输出:
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'.
Run Code Online (Sandbox Code Playgroud)
正如Gray的回答,现在你应该将更改提交给分支并尝试再次重新集成.这次它应该工作!
col*_*ebb 11
实际上我使用"合并两个不同的分支"选项来修复它,将主干和分支合并到我的工作副本中.然后我把它交给了行李箱.
奇妙