largefiles: use more reasonable locking for update
authorMads Kiilerich <madski@unity3d.com>
Sat, 27 Apr 2013 23:19:52 +0200
changeset 21089 278bd08a2902
parent 21088 e095626e8676
child 21090 aa3d652ba1d5
largefiles: use more reasonable locking for update
hgext/largefiles/overrides.py
--- a/hgext/largefiles/overrides.py	Sat Apr 27 23:19:52 2013 +0200
+++ b/hgext/largefiles/overrides.py	Sat Apr 27 23:19:52 2013 +0200
@@ -297,15 +297,15 @@
 # will get the new files. Filemerge is also overridden so that the merge
 # will merge standins correctly.
 def overrideupdate(orig, ui, repo, *pats, **opts):
-    lfdirstate = lfutil.openlfdirstate(ui, repo)
-    s = lfdirstate.status(match_.always(repo.root, repo.getcwd()), [], False,
-        False, False)
-    (unsure, modified, added, removed, missing, unknown, ignored, clean) = s
-
     # Need to lock between the standins getting updated and their
     # largefiles getting updated
     wlock = repo.wlock()
     try:
+        lfdirstate = lfutil.openlfdirstate(ui, repo)
+        s = lfdirstate.status(match_.always(repo.root, repo.getcwd()),
+            [], False, False, False)
+        (unsure, modified, added, removed, missing, unknown, ignored, clean) = s
+
         if opts['check']:
             mod = len(modified) > 0
             for lfile in unsure:
@@ -322,9 +322,9 @@
         if not opts['clean']:
             for lfile in unsure + modified + added:
                 lfutil.updatestandin(repo, lfutil.standin(lfile))
+        return orig(ui, repo, *pats, **opts)
     finally:
         wlock.release()
-    return orig(ui, repo, *pats, **opts)
 
 # Before starting the manifest merge, merge.updates will call
 # _checkunknown to check if there are any files in the merged-in