diff -r ac49ecb2a897 -r 72072cfc7e91 mercurial/destutil.py --- a/mercurial/destutil.py Wed Feb 03 04:37:04 2016 +0000 +++ b/mercurial/destutil.py Tue Feb 02 14:49:02 2016 +0000 @@ -218,3 +218,34 @@ return revs.first() return None + +def _statusotherbook(ui, repo): + bmheads = repo.bookmarkheads(repo._activebookmark) + curhead = repo[repo._activebookmark].node() + if repo.revs('%n and parents()', curhead): + # we are on the active bookmark + bmheads = [b for b in bmheads if curhead != b] + if bmheads: + msg = _('%i other divergent bookmarks for "%s"\n') + ui.status(msg % (len(bmheads), repo._activebookmark)) + +def _statusotherbranchheads(ui, repo): + currentbranch = repo.dirstate.branch() + heads = repo.branchheads(currentbranch) + l = len(heads) + if repo.revs('%ln and parents()', heads): + # we are on a head + heads = repo.revs('%ln - parents()', heads) + if heads and l != len(heads): + ui.status(_('%i other heads for branch "%s"\n') % + (len(heads), currentbranch)) + +def statusotherdests(ui, repo): + """Print message about other head""" + # XXX we should probably include a hint: + # - about what to do + # - how to see such heads + if repo._activebookmark: + _statusotherbook(ui, repo) + else: + _statusotherbranchheads(ui, repo)