2016-07-31 62 views
2

水銀跟蹤內容的文件的整個重命名(hg mv $OLD $NEW),使hg annotate $NEW也說明了以前對$OLD作出與原標識線明智的變化。這工作正常。水銀:確定文件名後重命名

但是,似乎沒有直接的方法來找出$OLD文件的名稱,某些給定的行已屬於$NEW的祖先。 hg annot $NEW -r$REV僅適用於rename變更集。

當然,信息在某種程度上是可以訪問的, G。通過抓取hg log(不包括--follow),並通過一些hg log -r$RENAMEREV -g -p(或通過點擊hg serve的Web界面)識別重命名。 但是這個「工作流程」不僅煩人而且容易出錯,但[最重要的]它不是非交互式/可編寫腳本的。

我的問題:有沒有辦法讓/建造要麼

  • $NEW文件名一定的歷史列表(最好與相應的修訂範圍),或
  • 的文件名中$LINE行被提交(某種文件名選項hg annot)?

hg CLI或Python/hglib的想法表示讚賞。

回答

0

無論是在您的hg log模板{file_copies}關鍵字:

$ hg init demo 
$ cd demo 
$ touch a 
$ hg ci -Am 'file a' 
adding a 
$ hg mv a b 
$ hg ci -Am 'moved to file b' 
$ hg log -r . -T"{file_copies}\n" 
b (a) 

內置模板status將包括文件拷貝信息,當你設置--copies標誌:

$ hg log -r 1 -Tstatus --copies 
changeset: 1:b37952faaddc 
tag:   tip 
user:  Martijn Pieters <[email protected]> 
date:  Sun Jul 31 16:07:04 2016 +0100 
summary:  moved to file b 
files: 
A b 
    a 
R a 

所以文件b是取自a

請參閱hg help template瞭解更多可以包含在日誌輸出中的內容。