##// END OF EJS Templates
rbc: fix invalid rbc-revs entries caused by missing cache growth...
Mads Kiilerich -
r29604:db0095c8 default
parent child Browse files
Show More
@@ -402,10 +402,9 b' class revbranchcache(object):'
402 402 if rev == nullrev:
403 403 return changelog.branchinfo(rev)
404 404
405 # if requested rev is missing, add and populate all missing revs
405 # if requested rev isn't allocated, grow and cache the rev info
406 406 if len(self._rbcrevs) < rbcrevidx + _rbcrecsize:
407 self._rbcrevs.extend('\0' * (len(changelog) * _rbcrecsize -
408 len(self._rbcrevs)))
407 return self._branchinfo(rev)
409 408
410 409 # fast path: extract data from cache, use it if node is matching
411 410 reponode = changelog.node(rev)[:_rbcnodelen]
@@ -452,6 +451,10 b' class revbranchcache(object):'
452 451 rbcrevidx = rev * _rbcrecsize
453 452 rec = array('c')
454 453 rec.fromstring(pack(_rbcrecfmt, node, branchidx))
454 if len(self._rbcrevs) < rbcrevidx + _rbcrecsize:
455 self._rbcrevs.extend('\0' *
456 (len(self._repo.changelog) * _rbcrecsize -
457 len(self._rbcrevs)))
455 458 self._rbcrevs[rbcrevidx:rbcrevidx + _rbcrecsize] = rec
456 459 self._rbcrevslen = min(self._rbcrevslen, rev)
457 460
@@ -655,12 +655,16 b' Test that cache files are created and gr'
655 655 $ rm .hg/cache/rbc*
656 656 $ hg log -r "5 & branch(5)" -T "{rev}\n"
657 657 5
658 BUG: rbc-revs should have an entry as 5th record but has it misplaced as the
659 first:
660 658 $ f --size --hexdump .hg/cache/rbc-*
661 659 .hg/cache/rbc-names-v1: size=1
662 660 0000: 61 |a|
663 .hg/cache/rbc-revs-v1: size=8
664 0000: d8 cb c6 1d 00 00 00 00 |........|
661 .hg/cache/rbc-revs-v1: size=112
662 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
663 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
664 0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 00 |................|
665 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
666 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
667 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
668 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
665 669
666 670 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now