--- a/mercurial/localrepo.py Tue Apr 24 10:53:25 2007 -0700
+++ b/mercurial/localrepo.py Tue Apr 24 11:05:39 2007 -0700
@@ -919,13 +919,10 @@
# all the revisions in parent->child order.
mf1 = mfmatches(node1)
+ mywlock = False
+
# are we comparing the working directory?
if not node2:
- if not wlock:
- try:
- wlock = self.wlock(wait=0)
- except lock.LockException:
- wlock = None
(lookup, modified, added, removed, deleted, unknown,
ignored, clean) = self.dirstate.status(files, match,
list_ignored, list_clean)
@@ -942,7 +939,13 @@
modified.append(f)
else:
clean.append(f)
- if wlock is not None:
+ if not wlock and not mywlock:
+ mywlock = True
+ try:
+ wlock = self.wlock(wait=0)
+ except lock.LockException:
+ pass
+ if wlock:
self.dirstate.update([f], "n")
else:
# we are comparing working dir against non-parent
@@ -957,6 +960,9 @@
for f in removed:
if f in mf2:
del mf2[f]
+
+ if mywlock and wlock:
+ wlock.release()
else:
# we are comparing two revisions
mf2 = mfmatches(node2)