# HG changeset patch # User Alexis S. L. Carvalho # Date 1181772958 10800 # Node ID eb403f295ff17e52afe178719d1c5e934c23065c # Parent 78c50632437eb9133c6570936a5021fd84ad8731 mq: grab locks before starting a transaction diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -438,11 +438,14 @@ class queue: def apply(self, repo, series, list=False, update_status=True, strict=False, patchdir=None, merge=None, wlock=None, all_files={}): + if not wlock: + wlock = repo.wlock() + lock = repo.lock() tr = repo.transaction() try: ret = self._apply(tr, repo, series, list, update_status, strict, patchdir, merge, wlock, - all_files=all_files) + lock=lock, all_files=all_files) tr.close() self.save_dirty() return ret @@ -456,14 +459,11 @@ class queue: def _apply(self, tr, repo, series, list=False, update_status=True, strict=False, patchdir=None, merge=None, wlock=None, - all_files={}): + lock=None, all_files={}): # TODO unify with commands.py if not patchdir: patchdir = self.path err = 0 - if not wlock: - wlock = repo.wlock() - lock = repo.lock() n = None for patchname in series: pushable, reason = self.pushable(patchname)