mercurial/exchange.py
changeset 30068 a76d5ba7ac43
parent 29808 8d226db31f20
child 30187 3e86261bf110
--- a/mercurial/exchange.py	Wed Aug 24 04:19:11 2016 +0200
+++ b/mercurial/exchange.py	Tue Aug 23 23:47:59 2016 +0200
@@ -1201,8 +1201,10 @@
                     " %s") % (', '.join(sorted(missing)))
             raise error.Abort(msg)
 
-    lock = pullop.repo.lock()
+    wlock = lock = None
     try:
+        wlock = pullop.repo.wlock()
+        lock = pullop.repo.lock()
         pullop.trmanager = transactionmanager(repo, 'pull', remote.url())
         streamclone.maybeperformlegacystreamclone(pullop)
         # This should ideally be in _pullbundle2(). However, it needs to run
@@ -1217,8 +1219,7 @@
         _pullobsolete(pullop)
         pullop.trmanager.close()
     finally:
-        pullop.trmanager.release()
-        lock.release()
+        lockmod.release(pullop.trmanager, lock, wlock)
 
     return pullop