From f163b7f3fad36580e5501fc9e4144728ba3fe6a0 Mon Sep 17 00:00:00 2001
From: Mathieu Courtois <mathieu.courtois@edf.fr>
Date: Tue, 8 Jan 2019 13:17:12 +0100
Subject: [PATCH] [#28360] Exclude secret changesets from counted heads.

--HG--
branch : edf/mc
---
 lib/hgaster/hooks/generic.py     | 5 +++--
 share/test/hgaster/test_hooks.py | 1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/hgaster/hooks/generic.py b/lib/hgaster/hooks/generic.py
index f15ce050..eff1d15c 100644
--- a/lib/hgaster/hooks/generic.py
+++ b/lib/hgaster/hooks/generic.py
@@ -6,7 +6,7 @@ Define generic functions to define hooks.
 
 import re
 
-from mercurial import ui, util
+from mercurial import hg, ui, util
 
 from aslint.baseutils import force_list
 
@@ -180,7 +180,8 @@ def single_head_per_branch_hook(in_branch=None):
         for branch, heads in repo.branchmap().items():
             if in_branch and not re.search(in_branch, branch):
                 continue
-            if node.branch() != branch:
+            node = repo[node]
+            if node.branch() != branch or node.phase() == hg.phases.secret:
                 continue
             unclosed = [head for head in heads
                         if not repo[head].extra().get("close")]
diff --git a/share/test/hgaster/test_hooks.py b/share/test/hgaster/test_hooks.py
index 53d6c6ee..f4d48d50 100644
--- a/share/test/hgaster/test_hooks.py
+++ b/share/test/hgaster/test_hooks.py
@@ -91,6 +91,7 @@ class FakeCset(object):
         self.hex = lambda: str(rev) * 10
         self.user = lambda: user
         self.branch = lambda: branch
+        self.phase = lambda: 0
         self.description = lambda: "[#0123] changeset description"
         self._head = head
         self.extra = lambda: dict(close=not head)
-- 
GitLab