Mercurial > public > mercurial-scm > hg
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(): |