##// END OF EJS Templates
revlog: regroup parsing code
Matt Mackall -
r4971:3e6dae27 default
parent child Browse files
Show More
@@ -378,32 +378,32 b' class revlog(object):'
378 raise RevlogError(_("index %s unknown format %d")
378 raise RevlogError(_("index %s unknown format %d")
379 % (self.indexfile, fmt))
379 % (self.indexfile, fmt))
380 self.version = v
380 self.version = v
381 if v == REVLOGV0:
381 self.nodemap = {nullid: nullrev}
382 self.index = []
383 self.indexformat = indexformatng
384 if self.version == REVLOGV0:
382 self.indexformat = indexformatv0
385 self.indexformat = indexformatv0
386 if i:
387 self._parseindex(f, st)
388
389 def _parseindex(self, fp, st):
390 shaoffset = ngshaoffset
391 if self.version == REVLOGV0:
383 shaoffset = v0shaoffset
392 shaoffset = v0shaoffset
384 else:
385 self.indexformat = indexformatng
386 shaoffset = ngshaoffset
387
393
388 if i:
389 if (lazyparser.safe_to_use and not self._inline() and
394 if (lazyparser.safe_to_use and not self._inline() and
390 st and st.st_size > 10000):
395 st and st.st_size > 10000):
391 # big index, let's parse it on demand
396 # big index, let's parse it on demand
392 parser = lazyparser(f, st.st_size, self.indexformat, shaoffset)
397 parser = lazyparser(fp, st.st_size, self.indexformat, shaoffset)
393 self.index = lazyindex(parser)
398 self.index = lazyindex(parser)
394 self.nodemap = lazymap(parser)
399 self.nodemap = lazymap(parser)
395 else:
396 self._parseindex(f, st)
397 if self.version != REVLOGV0:
400 if self.version != REVLOGV0:
398 e = list(self.index[0])
401 e = list(self.index[0])
399 type = gettype(e[0])
402 type = gettype(e[0])
400 e[0] = offset_type(0, type)
403 e[0] = offset_type(0, type)
401 self.index[0] = e
404 self.index[0] = e
402 else:
405 return
403 self.nodemap = {nullid: nullrev}
404 self.index = []
405
406
406 def _parseindex(self, fp, st):
407 s = struct.calcsize(self.indexformat)
407 s = struct.calcsize(self.indexformat)
408 self.index = []
408 self.index = []
409 self.nodemap = {nullid: nullrev}
409 self.nodemap = {nullid: nullrev}
@@ -447,6 +447,11 b' class revlog(object):'
447 if not st:
447 if not st:
448 break
448 break
449
449
450 if self.version != REVLOGV0:
451 e = list(self.index[0])
452 type = gettype(e[0])
453 e[0] = offset_type(0, type)
454 self.index[0] = e
450
455
451 def _loadindex(self, start, end):
456 def _loadindex(self, start, end):
452 """load a block of indexes all at once from the lazy parser"""
457 """load a block of indexes all at once from the lazy parser"""
General Comments 0
You need to be logged in to leave comments. Login now