[PATCH 8 of 8 V3] largefiles: simplify iteration over standins

Martin von Zweigbergk martinvonz at gmail.com
Wed Sep 24 11:32:14 CDT 2014

# HG changeset patch
# User Martin von Zweigbergk <martinvonz at gmail.com>
# Date 1410934239 25200
#      Tue Sep 16 23:10:39 2014 -0700
# Node ID 19987ec7d5f1f51b6a70715a736b768b36e455cc
# Parent  9720c5b5defdc166c596a11b6aafbf804d66bc8b
largefiles: simplify iteration over standins

Instead of iterating over all files in the context and ignoring those
that are not standins, pass a standin-matcher to the context and
iterate over only the files matching.

Apart from making the intent clearer, this implementation will also
benefit from any future optimizations done to the manifest walking

diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py
--- a/hgext/largefiles/reposetup.py
+++ b/hgext/largefiles/reposetup.py
@@ -193,9 +193,7 @@
                     # Standins no longer found in lfdirstate has been
                     # removed
-                    for standin in ctx1.manifest():
-                        if not lfutil.isstandin(standin):
-                            continue
+                    for standin in ctx1.walk(lfutil.getstandinmatcher(self)):
                         lfile = lfutil.splitstandin(standin)
                         if not match(lfile):

More information about the Mercurial-devel mailing list