Templates 如何限制Mercurial日志的大小?

Templates 如何限制Mercurial日志的大小?,templates,version-control,mercurial,Templates,Version Control,Mercurial,当我从终端窗口运行Mercurial的“hg log”命令时,结果常常会从屏幕上掉下来,迫使我向上滚动到顶部。因此,我创建了一个模板来减少日志的详细性和格式: [alias] slog = log --template '{rev}:{node|short} {desc|firstline} ({author})\n' 但是,我想通过a)将“slog”的大小限制在最后10次提交,或者b)使用类似于“hg slog###”的命令,其中“##”将是结果中显示的日志数,从而进一步改进这一点 关于如何

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

[alias]
slog = log --template '{rev}:{node|short} {desc|firstline} ({author})\n'
但是,我想通过a)将“slog”的大小限制在最后10次提交,或者b)使用类似于“hg slog###”的命令,其中“##”将是结果中显示的日志数,从而进一步改进这一点


关于如何实现A或B有什么想法吗?

获取最后10个变更集:
hg日志-l10

替代解决方案:
.hgrc
文件中进行配置。
最终结果与前面提到的解决方案类似

hg log | less

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

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"

如果您使用的是*nix环境,这将允许您在空闲时回滚日志历史记录:

hg log | less
或者根据您的喜好:

hg log | more

也就是说,
-l
(小写l)表示限制。有没有想过如何使“-limit”成为可选的?如果我键入“hg slog”,则不需要输入值。如果我可以选择这样做就好了。这取决于您的shell,但基本上您必须测试
“$1”
是否等于
。在Windows中,我会做
slog=!如果“$1”==”(hg log--limit 10)else(hg log--limit$1)
使用我有限的批处理文件知识使它在一行上工作。(为了简洁起见,省略了模板)