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