Mercurial hooks:如何在特定的推压中检测到第二个头部?

Mercurial hooks:如何在特定的推压中检测到第二个头部?,mercurial,hook,mercurial-hook,mercurial-api,Mercurial,Hook,Mercurial Hook,Mercurial Api,我使用服务器端(远程)钩子来防止特定类型的推送。 除此之外,我想禁止在mercurial存储库中创建新磁头的推送,即使它们是用--force推送的 我只能想到一种方法来实现这一点:只需迭代祖先,并在有两个孩子的第一个祖先上失败 这种方法确实有效,但如果有人能向我展示一种更优雅的方法来达到同样的效果,我会非常高兴 好的,结果证明这比我预期的要容易得多。基本上,您只需检查回购对象中的头数,因此: if repo.heads() > 1: return True 看看现有的问题,特别

我使用服务器端(远程)钩子来防止特定类型的推送。 除此之外,我想禁止在mercurial存储库中创建新磁头的推送,即使它们是用
--force
推送的

我只能想到一种方法来实现这一点:只需迭代祖先,并在有两个孩子的第一个祖先上失败


这种方法确实有效,但如果有人能向我展示一种更优雅的方法来达到同样的效果,我会非常高兴

好的,结果证明这比我预期的要容易得多。基本上,您只需检查回购对象中的头数,因此:

if repo.heads() > 1:
     return True

看看现有的问题,特别是公认的答案及其评论:另外,你的第一个提案不允许分支分裂,即使它们合并并以一个头结束,因为两个孩子会有分歧点,因此rejected@arhak说得好!在我们的例子中,虽然合并是不允许的,所以没有分叉这样的事情。