在 hg 钩子中获取为提交文件选择的列表

Get list selected for commit files in hg hook

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

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

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

只需使用正确的挂钩,您的情况可能是 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 如何以您需要的方式微调日志输出。