mercurial/revlog.py
changeset 31802 ac9a5e89113a
parent 31801 d22f29abeb42
child 31803 2be73f9720a8
equal deleted inserted replaced
31801:d22f29abeb42 31802:ac9a5e89113a
  1265         else:
  1265         else:
  1266             node = nodeorrev
  1266             node = nodeorrev
  1267             rev = None
  1267             rev = None
  1268 
  1268 
  1269         cachedrev = None
  1269         cachedrev = None
       
  1270         flags = None
  1270         if node == nullid:
  1271         if node == nullid:
  1271             return ""
  1272             return ""
  1272         if self._cache:
  1273         if self._cache:
  1273             if self._cache[0] == node:
  1274             if self._cache[0] == node:
  1274                 # _cache only stores rawtext
  1275                 # _cache only stores rawtext
  1275                 if raw:
  1276                 if raw:
  1276                     return self._cache[2]
  1277                     return self._cache[2]
  1277                 # duplicated, but good for perf
  1278                 # duplicated, but good for perf
  1278                 if rev is None:
  1279                 if rev is None:
  1279                     rev = self.rev(node)
  1280                     rev = self.rev(node)
       
  1281                 if flags is None:
       
  1282                     flags = self.flags(rev)
  1280                 # no extra flags set, no flag processor runs, text = rawtext
  1283                 # no extra flags set, no flag processor runs, text = rawtext
  1281                 if self.flags(rev) == REVIDX_DEFAULT_FLAGS:
  1284                 if flags == REVIDX_DEFAULT_FLAGS:
  1282                     return self._cache[2]
  1285                     return self._cache[2]
  1283 
  1286 
  1284             cachedrev = self._cache[1]
  1287             cachedrev = self._cache[1]
  1285 
  1288 
  1286         # look up what we need to read
  1289         # look up what we need to read
  1300             rawtext = bytes(bins[0])
  1303             rawtext = bytes(bins[0])
  1301             bins = bins[1:]
  1304             bins = bins[1:]
  1302 
  1305 
  1303         rawtext = mdiff.patches(rawtext, bins)
  1306         rawtext = mdiff.patches(rawtext, bins)
  1304 
  1307 
  1305         text, validatehash = self._processflags(rawtext, self.flags(rev),
  1308         if flags is None:
  1306                                                 'read', raw=raw)
  1309             flags = self.flags(rev)
       
  1310 
       
  1311         text, validatehash = self._processflags(rawtext, flags, 'read', raw=raw)
  1307         if validatehash:
  1312         if validatehash:
  1308             self.checkhash(text, node, rev=rev)
  1313             self.checkhash(text, node, rev=rev)
  1309 
  1314 
  1310         self._cache = (node, rev, rawtext)
  1315         self._cache = (node, rev, rawtext)
  1311         return text
  1316         return text