Mercurial > hg-stable
changeset 35647:fc39e2bfcd70
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.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 15 Jan 2018 00:16:11 +0530 |
parents | a177c6aa055a |
children | 588d02d9208a |
files | mercurial/bookmarks.py |
diffstat | 1 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bookmarks.py Sun Dec 10 18:25:33 2017 +0900 +++ b/mercurial/bookmarks.py Mon Jan 15 00:16:11 2018 +0530 @@ -830,7 +830,12 @@ 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 @@ 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)