largefiles: move calculation of largefiles for updating to utility function
authorNa'Tosha Bard <natosha@unity3d.com>
Fri, 09 Mar 2012 16:45:49 +0100
changeset 16245 a18ad914aa21
parent 16241 60cc3a0d2249
child 16246 169525f8ffbb
largefiles: move calculation of largefiles for updating to utility function
hgext/largefiles/lfutil.py
hgext/largefiles/overrides.py
--- a/hgext/largefiles/lfutil.py	Thu Mar 08 15:59:47 2012 -0600
+++ b/hgext/largefiles/lfutil.py	Fri Mar 09 16:45:49 2012 +0100
@@ -457,3 +457,11 @@
         lfile = splitstandin(standin)
         standins.append((lfile, readstandin(repo, lfile)))
     return standins
+
+def getlfilestoupdate(oldstandins, newstandins):
+    changedstandins = set(oldstandins).symmetric_difference(set(newstandins))
+    filelist = []
+    for f in changedstandins:
+        if f[0] not in filelist:
+            filelist.append(f[0])
+    return filelist
--- a/hgext/largefiles/overrides.py	Thu Mar 08 15:59:47 2012 -0600
+++ b/hgext/largefiles/overrides.py	Fri Mar 09 16:45:49 2012 +0100
@@ -602,19 +602,11 @@
         wlock.release()
 
 def hg_update(orig, repo, node):
-    # In order to not waste a lot of extra time during the update largefiles
-    # step, we keep track of the state of the standins before and after we
-    # call the original update function, and only update the standins that
-    # have changed in the hg.update() call
+    # Only call updatelfiles the standins that have changed to save time
     oldstandins = lfutil.getstandinsstate(repo)
     result = orig(repo, node)
     newstandins = lfutil.getstandinsstate(repo)
-    tobeupdated = set(oldstandins).symmetric_difference(set(newstandins))
-    filelist = []
-    for f in tobeupdated:
-        if f[0] not in filelist:
-            filelist.append(f[0])
-
+    filelist = lfutil.getlfilestoupdate(oldstandins, newstandins)
     lfcommands.updatelfiles(repo.ui, repo, filelist=filelist, printmessage=True)
     return result