2010-05-08 79 views
30

如果不是,這是git有的功能嗎?我可以用hg log以相反的順序打印歷史記錄嗎?

+0

它已經在反向打印,您需要反向反轉(或向前)。因此,一些答案給出了正常的順序(顛倒過來)。 – 2015-03-15 12:51:45

+0

有沒有辦法讓它與'-G'(圖)一起工作?我正在使用'hg log | tac「,但是'/'和''出來的方式是錯誤的(沒有顏色)。我只需要它用於'-G' – 2015-03-15 12:53:37

回答

41

YGL's answer是正確的日誌,看看this thread

從 「汞可以幫助記錄」 的提示可能是:
「如果沒有修改指定範圍,默認爲提示:0「。將此與來自「hg help multirevs」的知識結合起來。那就是:

hg log -r :

multirevs

當水銀接受多於一個的修改,它們可以單獨指定,或者提供爲拓撲連續範圍,通過分離「:」字符。

範圍符號的語法是[BEGIN]:[END],其中BEGINEND是修訂標識符。
BEGINEND都是可選的。
如果未指定BEGIN,則默認爲版本號0.
如果END未指定,則默認爲提示。
範圍「:」意思是「所有修訂」。

如果BEGIN大於END,修訂按相反順序處理。

範圍作爲一個封閉的區間。這意味着,一個範圍的3:5給出3,4和5
類似地,一系列的9:6給出9,8,7,和6


注意:如果你想要做同樣的與Graphlogglog)的行爲與正常的log命令(的子集)相似,不同之處在於它還使用ASCII字符在log左側打印表示修訂歷史記錄的圖表。),您將需要a patch

我要提醒你,這將是對大圖,特別是0:tip非常慢。
參見patch 1patch 2。我正在努力改善這一點。

22

你嘗試

hg log -r :

10

如果你想設置反向順序默認情況下,該行添加到您的hgrc(<回購> /.hg/hgrc,$ HOME/.hgrc,在/ etc /善變/ hgrc):

[defaults] 
log = -r : 
+1

我假設這改變了hg日誌的默認行爲以相反的順序顯示歷史。 – 2011-03-09 10:18:50

+3

我最初對此表示贊成,但現在我意識到這對我不起作用,因爲它打破了hg log顯示單個修訂的能力。也就是說,hg log現在顯示反向修訂。好。但是,hg log -r 25不會僅顯示變更集25 - 它仍將顯示整個變更集列表。 – firebush 2012-02-06 21:48:07

6

到nad2000的回答另一種方法是簡單地在~/.hgrc

[alias] 
logr = log -r : 

現在呼籲hg logr顯示以相反的順序日誌添加一個別名。不幸的是,正如VonC所指出的,由於hg glog -r :不以相反順序顯示日誌,因此無法爲glog定義相同類型的別名。

+3

+1添加一個別名似乎比改變默認行爲更好。 (@ firebush解釋了爲什麼) – 2013-04-06 12:10:21

1

不知道這是否已經改變或我做錯了什麼,但我得到逆時間順序記錄從水銀這樣的:

hg log -r tip:0 

我通常他們限制在最近的日誌條目太多使用-l

hg log -r tip:0 -l 3 
4

只是爲了提

Revset(長)版本:

hg log -r "sort(all(),-date)"

+0

這真的是正確的答案。如果您需要DAG日誌(::)而不是時間日誌(:),則'log -r:'不起作用。 – 2014-01-14 18:29:07

3

我很驚訝沒有人提到reverse()呢。也許這是一個新的hg功能?

hg log -r "reverse(all())"

當然,你可以用尖走:0爲好。我喜歡反向,因爲我也經常在與祖先混合時使用它。

hg log -r "reverse(::12345)"

相關問題