Mercurial でこれを行う最も柔軟な方法は、revset を使用することです。あなたの例:
hg log -r 'grep("\\b(com-mit|commit)\\b")'
Python 正規表現構文で\b
は、単語の境界を示し、バックスラッシュをエスケープする必要があります。構文は、(a|b)
どちらかを照合するために使用されます。引数を一重引用符で囲んでいるのは、シェルがメタ文字自体を解釈しないようにするためです。
revset をand
次のように組み合わせることで、正規表現を単純化することもできます。
hg log -r 'grep("\\bcom-mit\\b") or grep("\\bcommit\\b")'
単語を正確に一致させる必要がない場合 (たとえば、「commit」だけでなく「committer」と「committed」も一致させたい場合)、キーワード revsets を使用できます。
hg log -r 'keyword("com-mit") or keyword("commit")'
and
の代わりにを使用するとor
、一方ではなく両方に一致するリビジョンを見つけることができます。reverse(...)
また、逆の順序で一致をリストするために使用することもできます。
hg log -r 'reverse(keyword("com-mit") or keyword("commit"))'