D3748: import: use context manager for lock, dirstateguard, transaction
yuja (Yuya Nishihara)
phabricator at mercurial-scm.org
Fri Jun 15 22:00:27 EDT 2018
yuja added a comment.
> + if not opts.get('no_commit'):
> + lock = repo.lock()
> + try:
>
> tr = repo.transaction('import')
>
> - else:
> - dsguard = dirstateguard.dirstateguard(repo, 'import') + except: + lock.release()
Needs to re-raise.
> + dsguard = util.nullcontextmanager()
> + else:
> + lock = util.nullcontextmanager()
> + tr = util.nullcontextmanager()
> + dsguard = dirstateguard.dirstateguard(repo, 'import')
> + with lock, tr, dsguard:
Another option is to wrap transaction and dirstateguard by lambda or partial,
and call them with "with".
with lock(), tr(), dsguard():
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D3748
To: martinvonz, #hg-reviewers
Cc: yuja, mercurial-devel
More information about the Mercurial-devel
mailing list