如何知道分支是否使用其变更集关闭?

How to know if a branch is closed using its changeset?

内部构建系统构建在分支上进行的每个提交。但是,在 Mercurial 中,要关闭一个分支,你必须做 "close commit" 有点事情,触发该提交的构建。

这是个问题,因为我们在不必要的构建上浪费了资源。

我们正在使用 hglib 来完成所有的 Mercurial 代码。

(changeset.branch(), changeset.rev(), str(changeset)) in self.repo.Branches()

我试过这个命令,但这会忽略之前的提交,因为我知道它只是检查它是否作为一个分支存在于 repo 中。

有没有办法通过变更集或其他方式知道分支上的提交是否是 'close commit'。

close 信息存储在变更集 extra 中。我不确定如何通过 hglib 访问它,但您可以通过模板化日志调用访问它:hg log -r 2 -T "{extras|json}\n":

{"branch": "branch", "close": "1", "topic": "laconic-kouprey"}

最后,这就是我要找的东西:

self.Client.log(revrange="closed()")

这将 return:

[(revision, changeset, tag, branch name, 'username', description, date)]

这只是一个元组,因此:

How to search a list of tuples in Python