# HG changeset patch # User Yuya Nishihara # Date 2019-11-09 03:32:20 # Node ID 1c91576b88bb82a0be50a5f13b10996bbbd2e2d6 # Parent 2a8cd7edf4097f9c5a82327c134be4bd1d7a92ce bookmarks: resolve target revision out of the bookmarks loop The target revision doesn't depend on the bookmark to be added. diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py --- a/mercurial/bookmarks.py +++ b/mercurial/bookmarks.py @@ -955,9 +955,14 @@ def addbookmarks(repo, tr, names, rev=No changes = [] hiddenrev = None + tgt = cur # unhide revs if any if rev: repo = scmutil.unhidehashlikerevs(repo, [rev], b'nowarn') + ctx = scmutil.revsingle(repo, rev) + if ctx.hidden(): + hiddenrev = ctx.hex()[:12] + tgt = ctx.node() for mark in names: mark = checkformat(repo, mark) @@ -966,12 +971,6 @@ def addbookmarks(repo, tr, names, rev=No if inactive and mark == repo._activebookmark: deactivate(repo) continue - tgt = cur - if rev: - ctx = scmutil.revsingle(repo, rev) - if ctx.hidden(): - hiddenrev = ctx.hex()[:12] - tgt = ctx.node() for bm in marks.checkconflict(mark, force, tgt): changes.append((bm, None)) changes.append((mark, tgt))