D4851: streamclone: pass narrowing related info in _walkstreamfiles()

pulkit (Pulkit Goyal) phabricator at mercurial-scm.org
Wed Oct 17 10:52:56 EDT 2018


pulkit updated this revision to Diff 12209.
pulkit edited the summary of this revision.
pulkit retitled this revision from "streamclone: pass narrowing related info in generatev2() and _walkstreamfiles()" to "streamclone: pass narrowing related info in _walkstreamfiles()".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D4851?vs=11603&id=12209

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

AFFECTED FILES
  mercurial/streamclone.py

CHANGE DETAILS

diff --git a/mercurial/streamclone.py b/mercurial/streamclone.py
--- a/mercurial/streamclone.py
+++ b/mercurial/streamclone.py
@@ -16,6 +16,7 @@
     branchmap,
     cacheutil,
     error,
+    narrowspec,
     phases,
     pycompat,
     repository,
@@ -194,8 +195,8 @@
     return True
 
 # This is it's own function so extensions can override it.
-def _walkstreamfiles(repo):
-    return repo.store.walk()
+def _walkstreamfiles(repo, matcher=None):
+    return repo.store.walk(matcher)
 
 def generatev1(repo):
     """Emit content for version 1 of a streaming clone.
@@ -553,8 +554,12 @@
         entries = []
         totalfilesize = 0
 
+        matcher = None
+        if includes or excludes:
+            matcher = narrowspec.match(repo.root, includes, excludes)
+
         repo.ui.debug('scanning\n')
-        for name, ename, size in _walkstreamfiles(repo):
+        for name, ename, size in _walkstreamfiles(repo, matcher):
             if size:
                 entries.append((_srcstore, name, _fileappend, size))
                 totalfilesize += size



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


More information about the Mercurial-devel mailing list