0

pre-commit-hook でユーザー名を確認したい。コマンドラインから、達成したいことは次のようになります。

hg log -r "$HG_NODE:tip" --template "{author}\n"

内部 Mercurial API を使用して同じことを達成するにはどうすればよいですか?

4

1 に答える 1

3

レポオブジェクトを取得する方法をすでに理解していると仮定すると、安定版リリースで次のことができます。

start = repo[node].rev()
end = repo['tip'].rev()

for r in xrange(start, end + 1):
    ctx = repo[r]
    print ctx.user()

開発ブランチでは、次のことができます。

for ctx in repo.set('%s:tip', node): # node here must be hex, use %n for binary
    print ctx.user()

また、'node::tip' (2 つのコロン) は、'before' のより有用な定義である可能性があることに注意してください。これには、単純な番号順ではなく、node のすべての子孫と tip のすべての祖先が含まれます。

最後に、内部 API の使用に関する注意事項をすべて読んだことを確認してください。

https://www.mercurial-scm.org/wiki/MercurialApi

...代わりに python-hglib の使用を検討してください:

https://www.mercurial-scm.org/wiki/CommandServer

于 2011-10-05T18:47:38.000 に答える