Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 44954:affe0fb42250 stable
nodemap: fix validity checking when revlog is too short
We cannot check the nodeid of a revision that is not even there. We add a simple
fix and simple test.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 13 Jun 2020 11:57:58 +0200 |
parents | 64e2f603de9d |
children | cc2572923ea3 |
comparison
equal
deleted
inserted
replaced
44924:6c8384afbf77 | 44954:affe0fb42250 |
---|---|
649 ) | 649 ) |
650 if use_nodemap: | 650 if use_nodemap: |
651 nodemap_data = nodemaputil.persisted_data(self) | 651 nodemap_data = nodemaputil.persisted_data(self) |
652 if nodemap_data is not None: | 652 if nodemap_data is not None: |
653 docket = nodemap_data[0] | 653 docket = nodemap_data[0] |
654 if d[0][docket.tip_rev][7] == docket.tip_node: | 654 if ( |
655 len(d[0]) > docket.tip_rev | |
656 and d[0][docket.tip_rev][7] == docket.tip_node | |
657 ): | |
655 # no changelog tampering | 658 # no changelog tampering |
656 self._nodemap_docket = docket | 659 self._nodemap_docket = docket |
657 index.update_nodemap_data(*nodemap_data) | 660 index.update_nodemap_data(*nodemap_data) |
658 except (ValueError, IndexError): | 661 except (ValueError, IndexError): |
659 raise error.RevlogError( | 662 raise error.RevlogError( |