我想在pre-commit-hook中检查用户名。从命令行,我想要实现的目标如下:
hg log -r "$HG_NODE:tip" --template "{author}\n"
如何使用内部Mercurial API实现相同目标?
答案 0 :(得分:3)
假设您已经找到了如何获得repo对象,您可以使用稳定版本:
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'(两个冒号)可能是'between'的更有用的定义:它包括节点的所有后代和tip的所有祖先,而不是简单的数字排序。
最后,请确保您已阅读有关使用内部API的所有注意事项:
https://www.mercurial-scm.org/wiki/MercurialApi
...并考虑改用python-hglib: