Mercurial > hg
changeset 33824:158dddc635ff
commit: use context manager with dirstateguard
When I wrote 5ac845ca059a (commit: don't let failed commit with
--addremove update dirstate (issue5645), 2017-07-31), Durham's
609606d21765 (rebase: use one dirstateguard for when using
rebase.singletransaction, 2017-07-20) had not yet landed, so I had to
write it in the old-fashioned way. Now that Durham's patch is in, we
can simplify by using a context manager.
Differential Revision: https://phab.mercurial-scm.org/D406
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 14 Aug 2017 23:26:54 -0700 |
parents | 5d286eb7009f |
children | de573184686e |
files | mercurial/cmdutil.py |
diffstat | 1 files changed, 2 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Mon Aug 14 23:26:51 2017 -0700 +++ b/mercurial/cmdutil.py Mon Aug 14 23:26:54 2017 -0700 @@ -3000,19 +3000,13 @@ # that doesn't support addremove if opts.get('addremove'): dsguard = dirstateguard.dirstateguard(repo, 'commit') - try: + with dsguard or util.nullcontextmanager(): if dsguard: if scmutil.addremove(repo, matcher, "", opts) != 0: raise error.Abort( _("failed to mark all new/missing files as added/removed")) - r = commitfunc(ui, repo, message, matcher, opts) - if dsguard: - dsguard.close() - return r - finally: - if dsguard: - dsguard.release() + return commitfunc(ui, repo, message, matcher, opts) def samefile(f, ctx1, ctx2): if f in ctx1.manifest():