我可以获取hg日志以反向顺序打印历史记录吗?

时间:2010-05-08 23:10:07

标签: git mercurial history logging reverse

如果没有,这是git的功能吗?

7 个答案:

答案 0 :(得分:41)

YGL's answer是正确的日志,请参阅this thread

  

“hg help log”中的提示可能是:
  “如果未指定修订范围,则默认为tip:0”。将其与“hg help multirevs”的知识结合起来。那就是:

hg log -r :

<强> multirevs

  

当Mercurial接受多个修订时,可以单独指定它们,也可以作为拓扑连续范围提供,用“:”字符分隔。

     

范围表示法的语法为 [BEGIN]:[END] ,其中BEGINEND是修订标识符。
  BEGINEND都是可选的   如果未指定BEGIN,则默认为修订号0   如果未指定END,则默认为提示。
  范围“:”因此意味着“所有修订”。

如果BEGIN大于END,则会按相反的顺序处理修订。

  

范围充当封闭间隔。这意味着3:5的范围给出3,4和5   同样,9:6的范围分别为9,8,7和6。


注意:如果您想对 Graphlog (行为与普通glog命令(的一个子集)相同的log执行相同的操作,除了它还使用log左侧的ASCII字符打印表示修订历史记录的图表。您需要a patch

  

我应警告您,对于大型图表来说,非常慢,尤其是0:tip
  请参阅patch 1patch 2。我正在努力改进它。

答案 1 :(得分:22)

你试过吗

hg log -r :

答案 2 :(得分:10)

如果您想将逆序设置为默认值,请将此行添加到您的hgrc(&lt; repo&gt; /。hg / hgrc,$ HOME / .hgrc,/ etc / mercurial / hgrc):

[defaults]
log = -r :

答案 3 :(得分:6)

nad2000答案的替代方法是在~/.hgrc中添加别名

[alias]
logr = log -r :

现在调用hg logr会以相反的顺序显示日志。不幸的是,正如VonC所指出的,无法为glog定义相同类型的别名,因为hg glog -r :不会以相反的顺序显示日志。

答案 4 :(得分:6)

只是为了提及

Revset(长)版本:

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

答案 5 :(得分:4)

我很惊讶没人提到反向()。也许它是一个较新的hg功能?

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

当然,你也可以使用小费:0。我喜欢反向,因为我经常在与祖先混合时使用它。

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

答案 6 :(得分:1)

不确定这是否已经改变,或者我做错了什么,但是我从Mercurial得到了反向时间顺序的日志,如下所示:

hg log -r tip:0

我通常使用-l

将它们限制为最新的日志条目
hg log -r tip:0 -l 3