我想查看mercurial存儲庫中同一文件的連續(不同)修訂之間的差異序列。我明顯可以通過解析hg log
的結果,提取變更集,然後一次讀取這兩行並在循環中發佈hg diff -r $first_changset -r $second_changeset
來做到這一點。獲取修訂與mercurial之間的差異序列
但是 - 是否有一個更直接/優雅/圖形方式實現相同?
注意:雖然沒有註釋 - 至少不是默認情況下。我希望能夠看到集合在一起的同一個變更集的所有更改。
我想查看mercurial存儲庫中同一文件的連續(不同)修訂之間的差異序列。我明顯可以通過解析hg log
的結果,提取變更集,然後一次讀取這兩行並在循環中發佈hg diff -r $first_changset -r $second_changeset
來做到這一點。獲取修訂與mercurial之間的差異序列
但是 - 是否有一個更直接/優雅/圖形方式實現相同?
注意:雖然沒有註釋 - 至少不是默認情況下。我希望能夠看到集合在一起的同一個變更集的所有更改。
做到這一點,最快捷的方法是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
用於顯示由修訂版製作的差異,但遺憾的是,當您有多個修訂版時,該功能不起作用。
我可以爲那些修改版本庫中單個文件的版本做這項工作嗎? – einpoklum
您可以使用revsets來僅包含影響該文件的修訂版本,例如'reva:revb和文件(模式)'。 –