在hg hook中为提交文件选择列表

时间:2015-10-28 07:53:21

标签: python mercurial mercurial-hook

我正在编写一个钩子,它应该在实际提交之前处理文件。所以我发现我可以获得所有文件的列表,如下所示:

def hook(ui, repo, node, **kwargs):
    changedFileList =  repo.status()[0]

所以,这个结构为我提供了已更改文件的列表。现在,假设用户只选择了一些要提交的文件(例如通过tortoise ui)。

1 个答案:

答案 0 :(得分:1)

只需使用正确的挂钩,您的情况可能是pretxncommit挂钩。在提交的钩子$HG_NODE已经存在,但提交尚未完成。但是明确地使用$HG_NODE,您可以检查该提交的所有属性,包括它接触的文件,例如通过

hg log -r$HG_NODE --template="{files}\n"

或在python代码中

_changedFiles = [os.path.abspath(file) for file in repo[_node].changeset()[3]]

检查hg help hgrc(在其中搜索钩子)和hg log templates如何以您需要的方式微调日志输出。