diff -r bc34b286781f -r e0c810d0ab69 mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Apr 12 13:28:35 2015 -0400 +++ b/mercurial/localrepo.py Wed Apr 15 01:20:48 2015 -0400 @@ -1183,7 +1183,10 @@ def lock(self, wait=True): '''Lock the repository store (.hg/store) and return a weak reference to the lock. Use this before modifying the store (e.g. committing or - stripping). If you are opening a transaction, get a lock as well.)''' + stripping). If you are opening a transaction, get a lock as well.) + + If both 'lock' and 'wlock' must be acquired, ensure you always acquires + 'wlock' first to avoid a dead-lock hazard.''' l = self._lockref and self._lockref() if l is not None and l.held: l.lock() @@ -1203,7 +1206,11 @@ def wlock(self, wait=True): '''Lock the non-store parts of the repository (everything under .hg except .hg/store) and return a weak reference to the lock. - Use this before modifying files in .hg.''' + + Use this before modifying files in .hg. + + If both 'lock' and 'wlock' must be acquired, ensure you always acquires + 'wlock' first to avoid a dead-lock hazard.''' l = self._wlockref and self._wlockref() if l is not None and l.held: l.lock()