# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2018-01-14 18:46:11 # Node ID fc39e2bfcd709f0b04c5191295f2639357a13527 # Parent a177c6aa055a86799e9dd9cecc3bbb3531759bcc bookmarks: calculate visibility exceptions only once In the loop "for mark in names", the rev is same in each iteration, so it does not makes sense to call unhidehashlikerevs multiple times. Thanks to Yuya for spotting this. diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py --- a/mercurial/bookmarks.py +++ b/mercurial/bookmarks.py @@ -830,7 +830,12 @@ def addbookmarks(repo, tr, names, rev=No cur = repo.changectx('.').node() newact = None changes = [] - hiddenrevs = set() + hiddenrev = None + + # unhide revs if any + if rev: + repo = scmutil.unhidehashlikerevs(repo, [rev], 'nowarn') + for mark in names: mark = checkformat(repo, mark) if newact is None: @@ -840,17 +845,16 @@ def addbookmarks(repo, tr, names, rev=No return tgt = cur if rev: - repo = scmutil.unhidehashlikerevs(repo, [rev], 'nowarn') ctx = scmutil.revsingle(repo, rev) if ctx.hidden(): - hiddenrevs.add(ctx.hex()[:12]) + hiddenrev = ctx.hex()[:12] tgt = ctx.node() for bm in marks.checkconflict(mark, force, tgt): changes.append((bm, None)) changes.append((mark, tgt)) - if hiddenrevs: - repo.ui.warn(_("bookmarking hidden changeset %s\n") % - ', '.join(hiddenrevs)) + + if hiddenrev: + repo.ui.warn(_("bookmarking hidden changeset %s\n") % hiddenrev) marks.applychanges(repo, tr, changes) if not inactive and cur == marks[newact] and not rev: activate(repo, newact)