D3748: import: use context manager for lock, dirstateguard, transaction

Yuya Nishihara yuya at tcha.org
Fri Jun 15 08:37:50 EDT 2018


> +        if not opts.get('no_commit'):
> +            lock = repo.lock()
> +            tr = repo.transaction('import')
> +            dsguard = util.nullcontextmanager()
> +        else:
> +            lock = util.nullcontextmanager()
> +            tr = util.nullcontextmanager()
> +            dsguard = dirstateguard.dirstateguard(repo, 'import')
> +        with lock, tr, dsguard:

Doesn't it leave a stale `lock` if `repo.transaction()` raises exception?


More information about the Mercurial-devel mailing list