# HG changeset patch # User Gregory Szorc # Date 2018-09-21 02:31:07 # Node ID d9b3cc3d5d07fb864d2ebba2a17f784a583dbc65 # Parent 32d3ed3023bb534caa20960817fd1d11d924beab filelog: drop index attribute (API) The previous commit removed the last consumer of the "index" attribute on the file storage interface. The index is an extremely low-level data structure that is revlog specific and isn't appropriate to expose as part of a generic storage API. There may be a market for an efficient data structure to obtain metadata on every revision for a file. But if there is, it should be designed using e.g. named attributes for lookup instead of a list-like of 8-tuples. Let's drop the attribute from filelog and remove the attribute from the file storage interface. Differential Revision: https://phab.mercurial-scm.org/D4720 diff --git a/mercurial/filelog.py b/mercurial/filelog.py --- a/mercurial/filelog.py +++ b/mercurial/filelog.py @@ -25,8 +25,6 @@ class filelog(object): # Full name of the user visible file, relative to the repository root. # Used by LFS. self._revlog.filename = path - # Used by repo upgrade. - self.index = self._revlog.index # Used by changegroup generation. self._generaldelta = self._revlog._generaldelta diff --git a/mercurial/repository.py b/mercurial/repository.py --- a/mercurial/repository.py +++ b/mercurial/repository.py @@ -485,9 +485,6 @@ class ifileindex(interfaceutil.Interface * DAG data (storing and querying the relationship between nodes). * Metadata to facilitate storage. """ - index = interfaceutil.Attribute( - """An ``ifilerevisionssequence`` instance.""") - def __len__(): """Obtain the number of revisions stored for this file.""" diff --git a/tests/simplestorerepo.py b/tests/simplestorerepo.py --- a/tests/simplestorerepo.py +++ b/tests/simplestorerepo.py @@ -103,7 +103,7 @@ class filestorage(object): self._indexdata = indexdata or [] self._indexbynode = {} self._indexbyrev = {} - self.index = [] + self._index = [] self._refreshindex() # This is used by changegroup code :/ @@ -112,7 +112,7 @@ class filestorage(object): def _refreshindex(self): self._indexbynode.clear() self._indexbyrev.clear() - self.index = [] + self._index = [] for i, entry in enumerate(self._indexdata): self._indexbynode[entry[b'node']] = entry @@ -138,10 +138,10 @@ class filestorage(object): p1rev, p2rev = self.parentrevs(self.rev(entry[b'node'])) # start, length, rawsize, chainbase, linkrev, p1, p2, node - self.index.append((0, 0, 0, -1, entry[b'linkrev'], p1rev, p2rev, - entry[b'node'])) + self._index.append((0, 0, 0, -1, entry[b'linkrev'], p1rev, p2rev, + entry[b'node'])) - self.index.append((0, 0, 0, -1, -1, -1, -1, nullid)) + self._index.append((0, 0, 0, -1, -1, -1, -1, nullid)) def __len__(self): return len(self._indexdata)