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 | |
383 | shaoffset = v0shaoffset |
|
|||
384 | else: |
|
|||
385 | self.indexformat = indexformatng |
|
|||
386 | shaoffset = ngshaoffset |
|
|||
387 |
|
||||
388 | if i: |
|
386 | if i: | |
389 | if (lazyparser.safe_to_use and not self._inline() and |
|
387 | self._parseindex(f, st) | |
390 | st and st.st_size > 10000): |
|
388 | ||
391 | # big index, let's parse it on demand |
|
389 | def _parseindex(self, fp, st): | |
392 | parser = lazyparser(f, st.st_size, self.indexformat, shaoffset) |
|
390 | shaoffset = ngshaoffset | |
393 | self.index = lazyindex(parser) |
|
391 | if self.version == REVLOGV0: | |
394 | self.nodemap = lazymap(parser) |
|
392 | shaoffset = v0shaoffset | |
395 | else: |
|
393 | ||
396 | self._parseindex(f, st) |
|
394 | if (lazyparser.safe_to_use and not self._inline() and | |
|
395 | st and st.st_size > 10000): | |||
|
396 | # big index, let's parse it on demand | |||
|
397 | parser = lazyparser(fp, st.st_size, self.indexformat, shaoffset) | |||
|
398 | self.index = lazyindex(parser) | |||
|
399 | self.nodemap = lazymap(parser) | |||
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