2017-07-19 40 views
0

我想查看mercurial存儲庫中同一文件的連續(不同)修訂之間的差異序列。我明顯可以通過解析hg log的結果,提取變更集,然後一次讀取這兩行並在循環中發佈hg diff -r $first_changset -r $second_changeset來做到這一點。獲取修訂與mercurial之間的差異序列

但是 - 是否有一個更直接/優雅/圖形方式實現相同?

注意:雖然沒有註釋 - 至少不是默認情況下。我希望能夠看到集合在一起的同一個變更集的所有更改。

回答

1

做到這一點,最快捷的方法是hg export,例如:

hg export -r reva:revb 

這實際上給你一個導入的補丁,但額外的元信息往往是有幫助的。

最可配置輸出的最通用的解決方案是hg log使用模板,例如:

hg log -r reva:revb -T '{diff()}\n' 

diff()模板函數接受可選參數,指定包括和排除模式。詳情請參閱hg help templates

請注意,這也適用於-G,並將繪製一個依賴關係圖旁邊的差異。即使圖形是線性的,這可以幫助找到差異的開始和結束。顯然,您還可以向模板添加更多信息,例如修訂號,散列,提交消息和作者。

通常情況下,hg diff -c用於顯示由修訂版製作的差異,但遺憾的是,當您有多個修訂版時,該功能不起作用。

+0

我可以爲那些修改版本庫中單個文件的版本做這項工作嗎? – einpoklum

+1

您可以使用revsets來僅包含影響該文件的修訂版本,例如'reva:revb和文件(模式)'。 –

相關問題