Patchwork D3093: store: make file filtering during walk configurable

login
register
mail settings
Submitter phabricator
Date April 6, 2018, 7:50 p.m.
Message ID <e65ba09fdb53d1c12e43cf48c677d2a4@localhost.localdomain>
Download mbox | patch
Permalink /patch/30459/
State Not Applicable
Headers show

Comments

phabricator - April 6, 2018, 7:50 p.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG4c15bee42e9c: store: make file filtering during walk configurable (authored by indygreg, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D3093?vs=7675&id=7803

REVISION DETAIL
  https://phab.mercurial-scm.org/D3093

AFFECTED FILES
  mercurial/store.py

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/store.py b/mercurial/store.py
--- a/mercurial/store.py
+++ b/mercurial/store.py
@@ -319,6 +319,9 @@ 
 _data = ('data meta 00manifest.d 00manifest.i 00changelog.d 00changelog.i'
          ' phaseroots obsstore')
 
+def isrevlog(f, kind, st):
+    return kind == stat.S_IFREG and f[-2:] in ('.i', '.d')
+
 class basicstore(object):
     '''base class for local repository stores'''
     def __init__(self, path, vfstype):
@@ -333,7 +336,7 @@ 
     def join(self, f):
         return self.path + '/' + encodedir(f)
 
-    def _walk(self, relpath, recurse):
+    def _walk(self, relpath, recurse, filefilter=isrevlog):
         '''yields (unencoded, encoded, size)'''
         path = self.path
         if relpath:
@@ -347,7 +350,7 @@ 
                 p = visit.pop()
                 for f, kind, st in readdir(p, stat=True):
                     fp = p + '/' + f
-                    if kind == stat.S_IFREG and f[-2:] in ('.d', '.i'):
+                    if filefilter(f, kind, st):
                         n = util.pconvert(fp[striplen:])
                         l.append((decodedir(n), n, st.st_size))
                     elif kind == stat.S_IFDIR and recurse: