diff -r 78f3c7166f0d -r bce79dfcf5e4 mercurial/changegroup.py --- a/mercurial/changegroup.py Wed Nov 02 17:10:47 2016 -0700 +++ b/mercurial/changegroup.py Wed Nov 02 17:10:47 2016 -0700 @@ -677,7 +677,8 @@ def generatemanifests(self, commonrevs, clrevorder, fastpathlinkrev, mfs, fnodes): repo = self._repo - dirlog = repo.manifest.dirlog + mfl = repo.manifestlog + dirlog = mfl._revlog.dirlog tmfnodes = {'': mfs} # Callback for the manifest, used to collect linkrevs for filelog @@ -705,7 +706,7 @@ treemanifests to send. """ clnode = tmfnodes[dir][x] - mdata = dirlog(dir).readshallowfast(x) + mdata = mfl.get(dir, x).readfast(shallow=True) for p, n, fl in mdata.iterentries(): if fl == 't': # subdirectory manifest subdir = dir + p + '/'