martinvonz added a comment.

  In https://phab.mercurial-scm.org/D3748#58738, @yuja wrote:
  
  > > +        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?
  
  
  Good catch. I have often wished that our transactions and locks respected the 
context manager protocol and did the locking in __enter__. How do you feel 
about this workaround (see updated code)?

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3748

To: martinvonz, #hg-reviewers
Cc: yuja, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[email protected]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to