基于正则表达式搜索Mercurial变更集

时间:2015-09-09 14:20:43

标签: regex mercurial

我希望能够在Mercurial变更集上执行正则表达式搜索并使用log显示结果。

我已经提出了以下功能,这似乎有效,但有许多可能的错误(例如$1是包含单词changeset的文本行。

function hgs { hg log `hg log | grep changeset | grep "$1" \
    | sed 's/changeset: *//g' | sed 's/:.*$//g' | \
    awk '{print " -r " $0}'`; }

export -f hgs

我是否试图在其他地方重新创建已经存在的经过充分测试的解决方案?

1 个答案:

答案 0 :(得分:1)

它几乎看起来像是使用hg grep的组合,使用revsets和模板化输出可能会帮助你(检查hg help revsetshg help templateshg help grep,也可能hg help fileset)。

E.g。查找对config.lib的所有更改或提交消息包含2010年后生成的“pkgconfig”:

hg log -r"(file('config.lib') or desc('pkgconfig')) and date('>2010')"

revsets非常强大。您还可以排序,限制到一定数量的变更集,结合不同的要求......

使用--template hg log参数可以用来格式化您想要的任何模式的输出。