我正在編寫代碼來分析我們對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