正如hg help grep
所说:
默认情况下,grep会打印每个文件的最新修订号 找到匹配的。要让它打印包含a的每个修订版 更改匹配状态(“ - ”表示匹配变为不匹配,或“+” 对于成为匹配项的不匹配项,请使用--all标志。
这与广告一样:当我运行hg grep --all pattern
时,我会看到标有:+:
或:-:
的点击列表:
plaintext.py:8055:+: ...
plaintext.py:4690:-: ...
otherfile.py:4690:-: ...
plaintext.py:4630:+: ...
plaintext.py:4630:+: ...
问题是当我尝试将搜索限制为分支或revset时:
hg grep --all -r 'branch(default)' pattern
以上将不再打印状态发生变化的修订版。打印了大量匹配的修订版(不仅仅是最新的或最古老的修订版),并且不再打印许多删除匹配项(标有:-:
)的修订版。 (有些:-:
- 仍然会打印修订版;我不明白这种情况何时发生。)
这似乎可能是一个错误,但我知道什么。我正在使用mercurial 4.2(在OS X上)。
我可以过滤无限制hg grep --all
的输出;但默认格式不包括分支(我知道足够知道写一个包含所有当前信息和分支的模板)。
答案 0 :(得分:1)
我认为你遇到了这个错误:
https://bz.mercurial-scm.org/show_bug.cgi?id=3885
不幸的是,“hg grep”是出了名的马车,可能需要做很多工作才能进入一个更有用的地方。