2011-12-27 71 views

回答

11

查看有關更改文件的信息的實際方式是使用hg status。這說明在修訂100被修改的文件:

$ hg status -c 100 

但是,如果你想擁有的日誌信息,以及,然後hg log當然是一個自然的起點。不幸的是,沒有內置開關,這將使它每行顯示一個文件。

但是,hg log的輸出由template system控制,您可以爲其編寫自己的樣式。默認的樣式是here,你可以通過改變

file = ' {file}' 

定製做你想做什麼

file = '{file}\n' 

接着新樣式保存爲my-default.style,並添加

[ui] 
style = ~/path/to/my-default.style 

到您的配置文件。這給你每行一個文件,它甚至可以在文件名中有空格的情況下工作。

我知道一個問題:在hg log輸出中丟失顏色。事實證明,Mercurial在這裏作弊!它實際上並不使用我在生成日誌輸出時顯示的默認模板。它根本不使用任何模板系統,它只是使用直接代碼生成輸出,因爲它更快。問題是顏色擴展僅適用於硬編碼模板。切換到自定義模板並調用模板引擎時,會丟失顏色輸出。

但是,您可以通過將ANSI escape codes直接插入模板(在類Unix系統上)來恢復顏色。改變

changeset = 'changeset: {rev}:{node|short}\n{branches}... 

changeset = '\033[33mchangeset: {rev}:{node|short}\033[0m\n{branches}... 

是卓有成效的和硬編碼的變更黃色標題行。同時調整changeset_verbosechangeset_quiet行,並使用自己的模板輸出彩色輸出。

+0

對於我的生活,我不能得到這個工作。我已經將line style =「path設置爲我的文件\ my-style.default」,而Hg只是說「abort:找不到樣式:」我的文件路徑\ my-style.default「...?你有什麼想法嗎? – Rook

+0

你在文件名周圍是否使用了雙引號?正如在'style =「路徑中那樣''?令人驚訝的是,配置值沒有在Mercurial配置文件中引用,所以它應該是'style = the –

+0

A-ah,you ment--沒有雙引號,是的,我的錯誤......現在可以工作了,我並沒有想到, – Rook

1

我相信沒有內置的方式來實現這一點,但有點sed的(也可用於Windows:http://gnuwin32.sourceforge.net/packages/sed.htm)可以幫助:

hg log --template "Rev: {rev}:{node}\nDate: {date|isodate}\nFiles: {files}\n\n" -l 10 | sed -e '/^Files:/s/ /\n /g' 

輸出:

Rev: 1:2538bd4661c755ccab9b68e1d5e91144f6f97d33 
Date: 2011-12-20 15:47 +0100 
Files: 
    test1.txt 

Rev: 2:853a6f3c505308c9babff5a5a2f1e09303f1689c 
Date: 2011-12-20 15:44 +0100 
Files: 
    test2.txt 
    test3.txt 

說明的sed -e '/^Files:/s/ /\n /g'

  1. /^Files:/搜索線開始woth「文件: 「並應用以下搜索並僅替換那些行
  2. s/ /\n /g用換行符替換所有行,後跟空格。

當文件名包含空格時,此解決方案將不起作用。

0
  • hg log --style changelog

OR

  • hg log --template "Description: {desc}\n" - 像遞減,文件等支持關鍵字列出here
5

hg template help文件有這種寶石在它的例子。

格式列表,例如,文件:

$ hg log -r 0 --template "files:\n{files % ' {file}\n'}"

這在Windows上運行,沒有任何翻譯。

0

看到,在修訂更改的所有文件,使用:

hg status --change REV 
相關問題