D686: changegroup: add source parameter to generatemanifests
durham (Durham Goode)
phabricator at mercurial-scm.org
Mon Sep 11 23:18:46 UTC 2017
durham created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
Extensions, like remotefilelog, will want to look at the source of a pull when
determining what manifests to add to a changegroup. For instance, on push they
will include everything, while on pull they won't.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D686
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
@@ -626,7 +626,7 @@
'treemanifest' not in repo.requirements)
for chunk in self.generatemanifests(commonrevs, clrevorder,
- fastpathlinkrev, mfs, fnodes):
+ fastpathlinkrev, mfs, fnodes, source):
yield chunk
mfs.clear()
clrevs = set(cl.rev(x) for x in clnodes)
@@ -652,7 +652,12 @@
repo.hook('outgoing', node=hex(clnodes[0]), source=source)
def generatemanifests(self, commonrevs, clrevorder, fastpathlinkrev, mfs,
- fnodes):
+ fnodes, source):
+ """Returns an iterator of changegroup chunks containing manifests.
+
+ `source` is unused here, but is used by extensions like remotefilelog to
+ change what is sent based in pulls vs pushes, etc.
+ """
repo = self._repo
mfl = repo.manifestlog
dirlog = mfl._revlog.dirlog
To: durham, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list