Mercurial中是否有git grep
?也就是说,仅在工作副本中搜索文本,在Mercurial跟踪的文件中。 (hg grep
搜索存储库历史记录。)
答案 0 :(得分:8)
hg files "set:grep(regex_goes_here) and not binary()"
有关详细信息,请参阅filesets documentation。简而言之,这将打印与给定正则表达式匹配的所有跟踪文件,而不是二进制文件(不包含NUL字节)。
答案 1 :(得分:1)
将此别名添加到~/.hgrc
:
[alias]
grepcwd = ! $HG grep -r 'reverse(::.)' "$1" .
然后使用hg grepcwd foobar
,就像使用git grep foobar
一样。
原始来源:http://www.emilsit.net/blog/archives/git-is-more-usable-than-mercurial/
答案 2 :(得分:0)
Kevins 答案的升级:
遗憾的是,hg files "set:grep(regex_goes_here) and not binary()"
只返回文件,但不允许像 git grep
那样进入找到的行。
所以我创建了一个别名。将以下行放入您的 ~/.bashrc
:
alias hggrep='f(){
FILES_HG=$(hg files "set:grep(\"$1\") and not binary()")
for file_grep in $FILES_HG; do
grep --color -Hn "$1" "$file_grep"
done
unset -f f
}
f'
像这样使用:hggrep foobar