mercurial/bundlerepo.py
changeset 31836 4598e8f43e20
parent 31835 4bafc80f827e
child 31837 37e793918c07
equal deleted inserted replaced
31835:4bafc80f827e 31836:4598e8f43e20
   129             rev = self.rev(node)
   129             rev = self.rev(node)
   130 
   130 
   131         if node == nullid:
   131         if node == nullid:
   132             return ""
   132             return ""
   133 
   133 
   134         text = None
   134         rawtext = None
   135         chain = []
   135         chain = []
   136         iterrev = rev
   136         iterrev = rev
   137         # reconstruct the revision if it is from a changegroup
   137         # reconstruct the revision if it is from a changegroup
   138         while iterrev > self.repotiprev:
   138         while iterrev > self.repotiprev:
   139             if self._cache and self._cache[1] == iterrev:
   139             if self._cache and self._cache[1] == iterrev:
   140                 text = self._cache[2]
   140                 rawtext = self._cache[2]
   141                 break
   141                 break
   142             chain.append(iterrev)
   142             chain.append(iterrev)
   143             iterrev = self.index[iterrev][3]
   143             iterrev = self.index[iterrev][3]
   144         if text is None:
   144         if rawtext is None:
   145             text = self.baserevision(iterrev)
   145             rawtext = self.baserevision(iterrev)
   146 
   146 
   147         while chain:
   147         while chain:
   148             delta = self._chunk(chain.pop())
   148             delta = self._chunk(chain.pop())
   149             text = mdiff.patches(text, [delta])
   149             rawtext = mdiff.patches(rawtext, [delta])
   150 
   150 
   151         text, validatehash = self._processflags(text, self.flags(rev),
   151         text, validatehash = self._processflags(rawtext, self.flags(rev),
   152                                                 'read', raw=raw)
   152                                                 'read', raw=raw)
   153         if validatehash:
   153         if validatehash:
   154             self.checkhash(text, node, rev=rev)
   154             self.checkhash(text, node, rev=rev)
   155         self._cache = (node, rev, text)
   155         self._cache = (node, rev, rawtext)
   156         return text
   156         return text
   157 
   157 
   158     def baserevision(self, nodeorrev):
   158     def baserevision(self, nodeorrev):
   159         # Revlog subclasses may override 'revision' method to modify format of
   159         # Revlog subclasses may override 'revision' method to modify format of
   160         # content retrieved from revlog. To use bundlerevlog with such class one
   160         # content retrieved from revlog. To use bundlerevlog with such class one