便利且有趣的 Shortlog
作者: | Steve Losh |
---|
日期: | 2009-10-07 |
---|
通过添加一个hg shortlog
别名命令会让你做到许多很棒的事情。
许多 Mercurial 命令都可以通过 --template
选项来自定义输出内容。你可以使用 hg help templating
对你能够使用模板干哪些事情做一个深入的了解。
在本贴士中,我们将会使用到一个非常小巧但却是异常强大的模板。
Shortlog 模板
让我门先来看看一个非常简单的模板示例,用于 hg log
:
hg log --template '{rev}:{node|short} {desc|firstline}\n'
这个命令将会输出代码库中所有变更集的记录,每行一条,并且每一行包括版本号、哈希值以及摘要。看起来像是这样:
81:966ff708eb3a Add the Shortcuts for Specifying Revisions beginner tip.
80:3dca217e76a2 Change the title to something better.
79:4edca6026448 Change the title to something more description.
78:bea31254eba5 Add the Graphlog beginner tip.
77:5ef6bf0c5081 Add scrollbars to code blocks if needed.
76:dd1fa17eaa1f Reduce the number of tips on the front page to 4 per category.
75:f3d5a6d9d5a5 Fix the nested <p> tag issue.
74:e6a76edf8032 Add the Creating Repositories Over SSH advanced tip.
73:a4f1c617f01f Reword "N.B." to "Note" because it looks better before the colon.
72:e44939482007 Mention the feature requirement for HTTP User Auth.
... 其他的行 ...
这在你想要了解状况但又不需要太多信息的时候将会很有用处。接下来,让我们向 你的~/.hgrc文件 添加下面的别名命令:
[alias]
slog = log --template '{rev}:{node|short} {desc|firstline}\n'
现在你可以使用 hg slog
来输出一个非常简洁的记录了。不过我们这还没有结束呢。
计数
这个模板有一处非常特别的地方: 每条记录项占据一行 。这意味着我们可以使用UNIX 的 wc
(worldcount) 工具来计算行数,并由此得出变更集的多少。
例如,我们可以计算代码库中的变更集数目:
$ hg slog | wc -l
82
这可真心没用,因为我们可以通过最新变更集的版本号来得知。不过真正有趣的地方现在才开始呢,我们可以使用 hg log
的过滤选项来选择我们想要计算的变更集数目,来试试吧。
计算是合并的变更数目:
hg slog --only-merges | wc -l
计算非合并的变更数目:
hg slog --no-merges | wc -l
计算为 ‘Steve’ 提交的变更数目:
hg slog --user Steve | wc -l
计算过去三天提交的变更数目:
hg slog --date -3 | wc -l
计算自2月1号以来提交的变更数目:
hg slog --date '>Feb 1' | wc -l
计算字三月以来 Steve 提交的非合并变更数目:
hg slog --no-merges --user Steve --date '>Mar 1' | wc -l
使用像这样的模板 (每行一个变更集) 可以方便的计数任何你能使用 hg log
过滤而得到的项目。试试 hg help log
了解更多的过滤方法。