diff -r 0986f225c149 -r ceddc3d94d74 mercurial/revlog.py --- a/mercurial/revlog.py Sun Oct 23 09:34:55 2016 -0700 +++ b/mercurial/revlog.py Sat Oct 22 15:41:23 2016 -0700 @@ -1109,8 +1109,14 @@ Callers will need to call ``self.start(rev)`` and ``self.length(rev)`` to determine where each revision's data begins and ends. """ - start = self.start(startrev) - end = self.end(endrev) + # Inlined self.start(startrev) & self.end(endrev) for perf reasons + # (functions are expensive). + index = self.index + istart = index[startrev] + iend = index[endrev] + start = int(istart[0] >> 16) + end = int(iend[0] >> 16) + iend[1] + if self._inline: start += (startrev + 1) * self._io.size end += (endrev + 1) * self._io.size