【发布时间】:2016-10-06 11:56:50
【问题描述】:
我正在我们的一个存储库中搜索一组特别粗糙的旧版本,试图弄清楚几个所谓的合并发生了什么。
当我查看目标分支中的一个修订时,它显示的内容与源分支上的修订完全相同(相信我,我也检查了差异):
$ svn --log --verbose --use-merge-history --revision 100 ^/target
------------------------------------------------------------------------
r100 | <author> | <date> | 1 line
Changed paths:
A /path/to/new/file
------------------------------------------------------------------------
但是,有些东西不见了。任何地方都没有记录 mergeinfo 属性更改,对吧?所以它不可能是合并,据我所知。也许是作者手工编辑了文件?
我仔细检查了 Subversion 认为符合条件的修订:
$ svn mergeinfo --show-revs eligible ^/source ^/target | grep 100
没什么!尽管缺少合并信息,Subversion 仍认为修订已被合并。
$ svn mergeinfo --show-revs merged ^/source ^/target | grep 100
r100
这可能吗?怎么样?
我在缺少合并信息时阅读了CollabNet article 和Svn Book section。
- 合并不相关的源:不是这样的,正如我所说,我可以在源分支中看到确切的内容/差异。
- 从外部存储库合并:同上。
- 使用--ignore-ancestry:这是可能的(我不知道作者调用了什么命令),但是这个修订版不会出现在符合合并条件的列表中吗?
- 从目标的自然历史中应用反向合并:从历史中可以明显看出这不是反向合并。
【问题讨论】: