我正在编写代码来分析我们对Hg
的提交,并将我的结果与TortoiseHg
进行比较。我无法理解TortoiseHg
在合并情况下的行为。合并中显示的TortoiseHg文件
当我在TortoiseHg
中选择合并变更集时,受影响的文件列表仅显示那些冲突的文件,除非我按下"Show All"
按钮。至少这似乎是我的意图,基于我可以从网上搜集的内容,以及观察到如果按下“全部显示”按钮,列表中显示的文件具有双向箭头。
我试图通过对照父母双方对变更集中的每个文件进行比较来仿效,并且只在我的分析中包括该文件,如果它与父母双方不同。但是,我遇到TortoiseHg在合并描述中显示的文件,但这些文件仅与一位父母不同。我在TortoiseHg
中也看到 - 与父级1或2的差异会显示更改,但另一个父级不会。
我也尝试使用--git
选项进行区分,以确保它不是我缺少的元数据更改,但这根本不会改变结果。
要获得我使用的是变更的信息:
hg log -v -r <rev> --removed --style xml
我拿起合并变更的父母,并在合并的每个文件,做
hg diff -r <parent1> -r <rev> filename
hg diff -r <parent2> -r <rev< filename
我发现文件TortoiseHg
在其合并报告摘要中显示为合并为没有冲突。
任何人都可以阐明这种差异吗?
更新: 我能够使用TortoiseHg本身的源代码重现此问题。
从https://hg01.codeplex.com/tortoisehg克隆 打开tortoiseHg的回购并选择rev 12602(58eb7c70)。这是与12599(6c716caa)和12601(39c95a81)的父母合并。
TortoiseHg显示文件tortoisehg/hgqt/repowidget.py作为合并的唯一冲突的文件,但
hg diff -r 12599 -r 12602 tortoisehg/hgqt/repowidget.py
回报什么,而
hg diff -r 12601 -r 12602 tortoisehg/hgqt/repowidget.py
显示两行改变。
您的存储库是公开的吗?有一些真实的数据来看待会更容易。 – kevingessner 2013-03-15 22:27:26
可悲的是,但我会看看我是否可以在公开回购问题上重新创建问题 – 2013-03-15 23:35:23