Mercurial > hg
comparison hgext/censor.py @ 38441:e219e355e088
censor: use context manager for lock management
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 24 Mar 2017 00:32:31 -0400 |
parents | 0596d27457c6 |
children | e7aa113b14f7 |
comparison
equal
deleted
inserted
replaced
38440:3813c6b7337c | 38441:e219e355e088 |
---|---|
30 from mercurial.i18n import _ | 30 from mercurial.i18n import _ |
31 from mercurial.node import short | 31 from mercurial.node import short |
32 | 32 |
33 from mercurial import ( | 33 from mercurial import ( |
34 error, | 34 error, |
35 lock as lockmod, | |
36 registrar, | 35 registrar, |
37 revlog, | 36 revlog, |
38 scmutil, | 37 scmutil, |
39 util, | 38 util, |
40 ) | 39 ) |
50 @command('censor', | 49 @command('censor', |
51 [('r', 'rev', '', _('censor file from specified revision'), _('REV')), | 50 [('r', 'rev', '', _('censor file from specified revision'), _('REV')), |
52 ('t', 'tombstone', '', _('replacement tombstone data'), _('TEXT'))], | 51 ('t', 'tombstone', '', _('replacement tombstone data'), _('TEXT'))], |
53 _('-r REV [-t TEXT] [FILE]')) | 52 _('-r REV [-t TEXT] [FILE]')) |
54 def censor(ui, repo, path, rev='', tombstone='', **opts): | 53 def censor(ui, repo, path, rev='', tombstone='', **opts): |
55 wlock = lock = None | 54 with repo.wlock(), repo.lock(): |
56 try: | |
57 wlock = repo.wlock() | |
58 lock = repo.lock() | |
59 return _docensor(ui, repo, path, rev, tombstone, **opts) | 55 return _docensor(ui, repo, path, rev, tombstone, **opts) |
60 finally: | |
61 lockmod.release(lock, wlock) | |
62 | 56 |
63 def _docensor(ui, repo, path, rev='', tombstone='', **opts): | 57 def _docensor(ui, repo, path, rev='', tombstone='', **opts): |
64 if not path: | 58 if not path: |
65 raise error.Abort(_('must specify file path to censor')) | 59 raise error.Abort(_('must specify file path to censor')) |
66 if not rev: | 60 if not rev: |