Show More
@@ -156,6 +156,14 b' class PersistentNodeMapIndexObject(Index' | |||||
156 | index.""" |
|
156 | index.""" | |
157 | return nodemaputil.persistent_data(self) |
|
157 | return nodemaputil.persistent_data(self) | |
158 |
|
158 | |||
|
159 | def update_nodemap_data(self, nm_data): | |||
|
160 | """provide full blokc of persisted binary data for a nodemap | |||
|
161 | ||||
|
162 | The data are expected to come from disk. See `nodemap_data_all` for a | |||
|
163 | produceur of such data.""" | |||
|
164 | if nm_data is not None: | |||
|
165 | nodemaputil.parse_data(nm_data) | |||
|
166 | ||||
159 |
|
167 | |||
160 | class InlinedIndexObject(BaseIndexObject): |
|
168 | class InlinedIndexObject(BaseIndexObject): | |
161 | def __init__(self, data, inline=0): |
|
169 | def __init__(self, data, inline=0): |
@@ -626,6 +626,16 b' class revlog(object):' | |||||
626 | self._io = rustrevlogio() |
|
626 | self._io = rustrevlogio() | |
627 | try: |
|
627 | try: | |
628 | d = self._io.parseindex(indexdata, self._inline) |
|
628 | d = self._io.parseindex(indexdata, self._inline) | |
|
629 | index, _chunkcache = d | |||
|
630 | use_nodemap = ( | |||
|
631 | not self._inline | |||
|
632 | and self.nodemap_file is not None | |||
|
633 | and util.safehasattr(index, 'update_nodemap_data') | |||
|
634 | ) | |||
|
635 | if use_nodemap: | |||
|
636 | nodemap_data = nodemaputil.persisted_data(self) | |||
|
637 | if nodemap_data is not None: | |||
|
638 | index.update_nodemap_data(nodemap_data) | |||
629 | except (ValueError, IndexError): |
|
639 | except (ValueError, IndexError): | |
630 | raise error.RevlogError( |
|
640 | raise error.RevlogError( | |
631 | _(b"index %s is corrupted") % self.indexfile |
|
641 | _(b"index %s is corrupted") % self.indexfile |
General Comments 0
You need to be logged in to leave comments.
Login now