FYI, a very similar patch is a part of the latest shevle series I sent. On 16/03/2017 21:57, Jun Wu wrote: > # HG changeset patch > # User Jun Wu <qu...@fb.com> > # Date 1489699661 25200 > # Thu Mar 16 14:27:41 2017 -0700 > # Node ID 4f98fa7baebed161fe94c98661a8c404dd82a87d > # Parent 8f87b407da24ee802e271f517dbc96ad32f21779 > # Available At https://bitbucket.org/quark-zju/hg-draft > # hg pull https://bitbucket.org/quark-zju/hg-draft -r > 4f98fa7baebe > shelve: get rid of ui.backupconfig > > diff --git a/hgext/shelve.py b/hgext/shelve.py > --- a/hgext/shelve.py > +++ b/hgext/shelve.py > @@ -315,15 +315,14 @@ def getcommitfunc(extra, interactive, ed > if hasmq: > saved, repo.mq.checkapplied = repo.mq.checkapplied, False > - backup = repo.ui.backupconfig('phases', 'new-commit') > + override = {('phases', 'new-commit'): phases.secret} > try: > - repo.ui.setconfig('phases', 'new-commit', phases.secret) > editor_ = False > if editor: > editor_ = cmdutil.getcommiteditor(editform='shelve.shelve', > **opts) > - return repo.commit(message, shelveuser, opts.get('date'), match, > - editor=editor_, extra=extra) > + with repo.ui.configoverride(override): > + return repo.commit(message, shelveuser, opts.get('date'), > + match, editor=editor_, extra=extra) > finally: > - repo.ui.restoreconfig(backup) > if hasmq: > repo.mq.checkapplied = saved > @@ -851,7 +850,5 @@ def _dounshelve(ui, repo, *shelved, **op > oldquiet = ui.quiet > lock = tr = None > - forcemerge = ui.backupconfig('ui', 'forcemerge') > try: > - ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), 'unshelve') > lock = repo.lock() > > @@ -867,23 +864,26 @@ def _dounshelve(ui, repo, *shelved, **op > # to the original pctx. > > - tmpwctx, addedbefore = _commitworkingcopychanges(ui, repo, opts, > - tmpwctx) > - > - repo, shelvectx = _unshelverestorecommit(ui, repo, basename, > oldquiet) > - _checkunshelveuntrackedproblems(ui, repo, shelvectx) > - branchtorestore = '' > - if shelvectx.branch() != shelvectx.p1().branch(): > - branchtorestore = shelvectx.branch() > + override = {('ui', 'forcemerge'): opts.get('tool', '')} > + with ui.configoverride(override, 'unshelve'): > + tmpwctx, addedbefore = _commitworkingcopychanges(ui, repo, opts, > + tmpwctx) > > - shelvectx = _rebaserestoredcommit(ui, repo, opts, tr, oldtiprev, > - basename, pctx, tmpwctx, shelvectx, > - branchtorestore) > - mergefiles(ui, repo, pctx, shelvectx) > - restorebranch(ui, repo, branchtorestore) > - _forgetunknownfiles(repo, shelvectx, addedbefore) > + repo, shelvectx = _unshelverestorecommit(ui, repo, basename, > + oldquiet) > + _checkunshelveuntrackedproblems(ui, repo, shelvectx) > + branchtorestore = '' > + if shelvectx.branch() != shelvectx.p1().branch(): > + branchtorestore = shelvectx.branch() > > - shelvedstate.clear(repo) > - _finishunshelve(repo, oldtiprev, tr) > - unshelvecleanup(ui, repo, basename, opts) > + shelvectx = _rebaserestoredcommit(ui, repo, opts, tr, oldtiprev, > + basename, pctx, tmpwctx, > + shelvectx, branchtorestore) > + mergefiles(ui, repo, pctx, shelvectx) > + restorebranch(ui, repo, branchtorestore) > + _forgetunknownfiles(repo, shelvectx, addedbefore) > + > + shelvedstate.clear(repo) > + _finishunshelve(repo, oldtiprev, tr) > + unshelvecleanup(ui, repo, basename, opts) > finally: > ui.quiet = oldquiet > @@ -891,5 +891,4 @@ def _dounshelve(ui, repo, *shelved, **op > tr.release() > lockmod.release(lock) > - ui.restoreconfig(forcemerge) > > @command('shelve', > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@mercurial-scm.org > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
_______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel