我希望能够在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
我是否试图在其他地方重新创建已经存在的经过充分测试的解决方案?
答案 0 :(得分:1)
它几乎看起来像是使用hg grep
的组合,使用revsets和模板化输出可能会帮助你(检查hg help revsets
,hg help templates
,hg 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
参数可以用来格式化您想要的任何模式的输出。