diff --git a/lib/hgaster/ascommands.py b/lib/hgaster/ascommands.py index 3c1628c9b0a941b08ee4ec0b5f99f287d16bc355..355ea10353d4096bdb99e149d0a276e7583d4708 100644 --- a/lib/hgaster/ascommands.py +++ b/lib/hgaster/ascommands.py @@ -1225,6 +1225,10 @@ class Integration(CandidateRevisionCheckAster): user = ui.username() self._details = ui.edit("", user) + def check_branch(self, repo, branch): + """Check branch validity.""" + return valid_branch(repo, branch) + def _call_queue_func(self, func): """call ``func()`` on the revision passed in arguments""" rev = self.args[0] diff --git a/lib/hgaster/hooks/generic.py b/lib/hgaster/hooks/generic.py index f15ce050885b9d839312ab59ef1be81c69c308c0..eff1d15cf0ddf9b8ae93f754c20d3b2b7fa49324 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 53d6c6ee8d637a2d21ecc985b6c7bae90695c04f..f4d48d50dd25da3e688057178a98021f88928d51 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)