如何限制Mercurial日志的大小?

时间:2011-07-06 14:48:10

标签: templates version-control mercurial

当我从终端窗口运行Mercurial的“hg log”命令时,结果经常从屏幕上掉下来,迫使我向上滚动到顶部。因此,我创建了一个模板来减少日志的冗长和格式:

[alias]
slog = log --template '{rev}:{node|short} {desc|firstline} ({author})\n'

但是,我想通过以下方式进一步改进:a)将“slog”的大小限制为最后10次提交或b)使用“hg slog ##”之类的命令,其中“## “将是结果中显示的日志数量。

关于如何实现A或B的任何想法?

3 个答案:

答案 0 :(得分:12)

您可以通过以下方式定义别名以仅执行固定限制:

slog = log --limit 10 --template "{rev}:{node|short} {desc|firstline} ({author})\n"

或者,您可以将--limit放在最后,以便您可以向其传递数字,因为别名的参数将附加到结尾:

slog = log --template "{rev}:{node|short} {desc|firstline} ({author})\n" --limit

对于最后10个变更集,可以像上面这样调用上面的内容:

hg slog 10

您还应该能够以这种方式定义参数化版本,但它似乎不是扩展$1的属性:

slog = log --limit $1 --template "{rev}:{node|short} {desc|firstline} ({author})\n"

#I had to use shell execute to make it expand:
#slog = !hg log --limit $1 --template "{rev}:{node|short} {desc|firstline} ({author})\n"

答案 1 :(得分:7)

获得最后10个变更集:
hg log -l10

替代解决方案:
.hgrc文件中配置autopager plugin 最终结果类似于已经提到的解决方案

hg log | less

答案 2 :(得分:0)

如果您使用的是* nix环境,则可以在闲暇时滚动浏览日志历史记录:

hg log | less

或根据您的偏好:

hg log | more