diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py --- a/mercurial/branchmap.py +++ b/mercurial/branchmap.py @@ -175,6 +175,10 @@ def iteritems(self): return self.entries.iteritems() + def hasbranch(self, label): + """ checks whether a branch of this name exists or not """ + return label in self.entries + @classmethod def fromfile(cls, repo): f = None diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1556,7 +1556,7 @@ return scmutil.revsymbol(self, key).node() def lookupbranch(self, key): - if key in self.branchmap().entries: + if self.branchmap().hasbranch(key): return key return scmutil.revsymbol(self, key).branch() @@ -2730,7 +2730,7 @@ if branch is None: branch = self[None].branch() branches = self.branchmap() - if branch not in branches.entries: + if not branches.hasbranch(branch): return [] # the cache returns heads ordered lowest to highest bheads = list(reversed(branches.branchheads(branch, closed=closed))) diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -555,7 +555,7 @@ if kind == 'literal': # note: falls through to the revspec case if no branch with # this name exists and pattern kind is not specified explicitly - if pattern in repo.branchmap(): + if repo.branchmap().hasbranch(pattern): return subset.filter(lambda r: matcher(getbranch(r)), condrepr=('', b)) if b.startswith('literal:'):