diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py --- a/mercurial/bookmarks.py +++ b/mercurial/bookmarks.py @@ -463,6 +463,10 @@ def update(repo, parents, node): return bool(bmchanges) +def isdivergent(b): + return b'@' in b and not b.endswith(b'@') + + def listbinbookmarks(repo): # We may try to list bookmarks on a repo type that does not # support it (e.g., statichttprepository). @@ -471,7 +475,7 @@ def listbinbookmarks(repo): hasnode = repo.changelog.hasnode for k, v in pycompat.iteritems(marks): # don't expose local divergent bookmarks - if hasnode(v) and (b'@' not in k or k.endswith(b'@')): + if hasnode(v) and not isdivergent(k): yield k, v