D5280: changegroup: avoid instantiating storage if we are not using it
spectral (Kyle Lippincott)
phabricator at mercurial-scm.org
Sat Nov 17 06:12:49 UTC 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHGdba590f27c7a: changegroup: avoid instantiating storage if we are not using it (authored by spectral, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5280?vs=12552&id=12558
REVISION DETAIL
https://phab.mercurial-scm.org/D5280
AFFECTED FILES
mercurial/changegroup.py
CHANGE DETAILS
diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -1043,18 +1043,25 @@
while tmfnodes:
tree, nodes = tmfnodes.popitem()
+
+ should_visit = self._matcher.visitdir(tree[:-1] or '.')
+ if tree and not should_visit:
+ continue
+
store = mfl.getstorage(tree)
- if not self._matcher.visitdir(store.tree[:-1] or '.'):
+ if not should_visit:
# No nodes to send because this directory is out of
# the client's view of the repository (probably
- # because of narrow clones).
+ # because of narrow clones). Do this even for the root
+ # directory (tree=='')
prunednodes = []
else:
# Avoid sending any manifest nodes we can prove the
# client already has by checking linkrevs. See the
# related comment in generatefiles().
prunednodes = self._prunemanifests(store, nodes, commonrevs)
+
if tree and not prunednodes:
continue
To: spectral, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list