comparison mercurial/commands.py @ 38318:929405af558a

update: use context manager for config override (API) Note that update wasn't resetting the value before, so any extensions that called commands.update() and relied on ui.forcemerge being set after it returned would now have to set it themselves. (There technically a small API change in all of the patches in this series, I believe: If extensions relied on the methods to *clear* ui.forcemerge, then they would have to do that themselves now, because ui.configoverride() actually restores the previous config, it doesn't just clear it like these functions did before.) Differential Revision: https://phab.mercurial-scm.org/D3741
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 14 Jun 2018 15:46:31 -0700
parents ff9694ea3852
children 0d6d0aa3c4bf
comparison
equal deleted inserted replaced
38317:ff9694ea3852 38318:929405af558a
5655 if rev: 5655 if rev:
5656 repo = scmutil.unhidehashlikerevs(repo, [rev], 'nowarn') 5656 repo = scmutil.unhidehashlikerevs(repo, [rev], 'nowarn')
5657 ctx = scmutil.revsingle(repo, rev, rev) 5657 ctx = scmutil.revsingle(repo, rev, rev)
5658 rev = ctx.rev() 5658 rev = ctx.rev()
5659 hidden = ctx.hidden() 5659 hidden = ctx.hidden()
5660 repo.ui.setconfig('ui', 'forcemerge', opts.get(r'tool'), 'update') 5660 overrides = {('ui', 'forcemerge'): opts.get(r'tool', '')}
5661 5661 with ui.configoverride(overrides, 'update'):
5662 ret = hg.updatetotally(ui, repo, rev, brev, clean=clean, 5662 ret = hg.updatetotally(ui, repo, rev, brev, clean=clean,
5663 updatecheck=updatecheck) 5663 updatecheck=updatecheck)
5664 if hidden: 5664 if hidden:
5665 ctxstr = ctx.hex()[:12] 5665 ctxstr = ctx.hex()[:12]
5666 ui.warn(_("updated to hidden changeset %s\n") % ctxstr) 5666 ui.warn(_("updated to hidden changeset %s\n") % ctxstr)
5667 5667
5668 if ctx.obsolete(): 5668 if ctx.obsolete():