revlog: rename `indexfile` to `_indexfile`
authorPierre-Yves David <pierre-yves.david@octobus.net>
Mon, 03 May 2021 12:22:16 +0200
changeset 47148 a07d5cb03a85
parent 47147 8a1a51d31e85
child 47149 396442cd7e6a
revlog: rename `indexfile` to `_indexfile` We want to make the actual location of the indexfile and location more of an implementation details than what is is currently. In that process, we make the attribute private. Differential Revision: https://phab.mercurial-scm.org/D10574
contrib/perf.py
mercurial/bundlerepo.py
mercurial/changegroup.py
mercurial/changelog.py
mercurial/filelog.py
mercurial/repoview.py
mercurial/revlog.py
mercurial/revlogutils/nodemap.py
mercurial/unionrepo.py
mercurial/upgrade_utils/engine.py
tests/test-contrib-perf.t
tests/test-revlog-raw.py
--- a/contrib/perf.py	Mon May 03 12:22:06 2021 +0200
+++ b/contrib/perf.py	Mon May 03 12:22:16 2021 +0200
@@ -2609,7 +2609,11 @@
     rl = cmdutil.openrevlog(repo, b'perfrevlogindex', file_, opts)
 
     opener = getattr(rl, 'opener')  # trick linter
-    indexfile = rl.indexfile
+    # compat with hg <= 5.8
+    indexfile = getattr(rl, '_indexfile', None)
+    if indexfile is None:
+        # compatibility with <= hg-5.8
+        indexfile = getattr(rl, 'indexfile')
     data = opener.read(indexfile)
 
     header = struct.unpack(b'>I', data[0:4])[0]
@@ -3031,7 +3035,11 @@
     if util.safehasattr(orig, k):
         revlogkwargs[k] = getattr(orig, k)
 
-    origindexpath = orig.opener.join(orig.indexfile)
+    indexfile = getattr(orig, '_indexfile', None)
+    if indexfile is None:
+        # compatibility with <= hg-5.8
+        indexfile = getattr(orig, 'indexfile')
+    origindexpath = orig.opener.join(indexfile)
     origdatapath = orig.opener.join(orig.datafile)
     indexname = 'revlog.i'
     dataname = 'revlog.d'
@@ -3127,7 +3135,11 @@
 
     def rlfh(rl):
         if rl._inline:
-            return getsvfs(repo)(rl.indexfile)
+            indexfile = getattr(rl, '_indexfile', None)
+            if indexfile is None:
+                # compatibility with <= hg-5.8
+                indexfile = getattr(rl, 'indexfile')
+            return getsvfs(repo)(indexfile)
         else:
             return getsvfs(repo)(rl.datafile)
 
--- a/mercurial/bundlerepo.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/bundlerepo.py	Mon May 03 12:22:16 2021 +0200
@@ -84,12 +84,12 @@
             for p in (p1, p2):
                 if not self.index.has_node(p):
                     raise error.LookupError(
-                        p, self.indexfile, _(b"unknown parent")
+                        p, self._indexfile, _(b"unknown parent")
                     )
 
             if not self.index.has_node(deltabase):
                 raise LookupError(
-                    deltabase, self.indexfile, _(b'unknown delta base')
+                    deltabase, self._indexfile, _(b'unknown delta base')
                 )
 
             baserev = self.rev(deltabase)
@@ -180,7 +180,7 @@
             self,
             opener,
             (revlog_constants.KIND_CHANGELOG, None),
-            self.indexfile,
+            self._indexfile,
             cgunpacker,
             linkmapper,
         )
@@ -201,7 +201,7 @@
             self,
             opener,
             (revlog_constants.KIND_MANIFESTLOG, dir),
-            self._revlog.indexfile,
+            self._revlog._indexfile,
             cgunpacker,
             linkmapper,
         )
@@ -233,7 +233,7 @@
             opener,
             # XXX should use the unencoded path
             target=(revlog_constants.KIND_FILELOG, path),
-            indexfile=self._revlog.indexfile,
+            indexfile=self._revlog._indexfile,
             cgunpacker=cgunpacker,
             linkmapper=linkmapper,
         )
--- a/mercurial/changegroup.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/changegroup.py	Mon May 03 12:22:16 2021 +0200
@@ -804,10 +804,10 @@
                 # We failed to resolve a parent for this node, so
                 # we crash the changegroup construction.
                 if util.safehasattr(store, 'target'):
-                    target = store.indexfile
+                    target = store._indexfile
                 else:
                     # some revlog not actually a revlog
-                    target = store._revlog.indexfile
+                    target = store._revlog._indexfile
 
                 raise error.Abort(
                     b"unable to resolve parent while packing '%s' %r"
--- a/mercurial/changelog.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/changelog.py	Mon May 03 12:22:16 2021 +0200
@@ -452,13 +452,13 @@
         if not self._delayed:
             if len(self) == 0:
                 self._divert = True
-                if self._realopener.exists(self.indexfile + b'.a'):
-                    self._realopener.unlink(self.indexfile + b'.a')
-                self.opener = _divertopener(self._realopener, self.indexfile)
+                if self._realopener.exists(self._indexfile + b'.a'):
+                    self._realopener.unlink(self._indexfile + b'.a')
+                self.opener = _divertopener(self._realopener, self._indexfile)
             else:
                 self._delaybuf = []
                 self.opener = _delayopener(
-                    self._realopener, self.indexfile, self._delaybuf
+                    self._realopener, self._indexfile, self._delaybuf
                 )
         self._delayed = True
         tr.addpending(b'cl-%i' % id(self), self._writepending)
@@ -471,12 +471,12 @@
         # move redirected index data back into place
         if self._divert:
             assert not self._delaybuf
-            tmpname = self.indexfile + b".a"
+            tmpname = self._indexfile + b".a"
             nfile = self.opener.open(tmpname)
             nfile.close()
-            self.opener.rename(tmpname, self.indexfile, checkambig=True)
+            self.opener.rename(tmpname, self._indexfile, checkambig=True)
         elif self._delaybuf:
-            fp = self.opener(self.indexfile, b'a', checkambig=True)
+            fp = self.opener(self._indexfile, b'a', checkambig=True)
             fp.write(b"".join(self._delaybuf))
             fp.close()
             self._delaybuf = None
@@ -489,8 +489,8 @@
         pretxnchangegroup"""
         if self._delaybuf:
             # make a temporary copy of the index
-            fp1 = self._realopener(self.indexfile)
-            pendingfilename = self.indexfile + b".a"
+            fp1 = self._realopener(self._indexfile)
+            pendingfilename = self._indexfile + b".a"
             # register as a temp file to ensure cleanup on failure
             tr.registertmp(pendingfilename)
             # write existing data
@@ -502,7 +502,7 @@
             # switch modes so finalize can simply rename
             self._delaybuf = None
             self._divert = True
-            self.opener = _divertopener(self._realopener, self.indexfile)
+            self.opener = _divertopener(self._realopener, self._indexfile)
 
         if self._divert:
             return True
--- a/mercurial/filelog.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/filelog.py	Mon May 03 12:22:16 2021 +0200
@@ -71,7 +71,7 @@
 
     def lookup(self, node):
         return storageutil.fileidlookup(
-            self._revlog, node, self._revlog.indexfile
+            self._revlog, node, self._revlog._indexfile
         )
 
     def linkrev(self, rev):
--- a/mercurial/repoview.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/repoview.py	Mon May 03 12:22:16 2021 +0200
@@ -333,7 +333,7 @@
         r = super(filteredchangelogmixin, self).rev(node)
         if r in self.filteredrevs:
             raise error.FilteredLookupError(
-                hex(node), self.indexfile, _(b'filtered node')
+                hex(node), self._indexfile, _(b'filtered node')
             )
         return r
 
--- a/mercurial/revlog.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/revlog.py	Mon May 03 12:22:16 2021 +0200
@@ -323,13 +323,13 @@
                 datafile = b'%s.%s' % (datafile, postfix)
         if postfix is not None:
             indexfile = b'%s.%s' % (indexfile, postfix)
-        self.indexfile = indexfile
+        self._indexfile = indexfile
         self.datafile = datafile
         self.nodemap_file = None
         self.postfix = postfix
         if persistentnodemap:
             self.nodemap_file = nodemaputil.get_nodemap_file(
-                opener, self.indexfile
+                opener, self._indexfile
             )
 
         self.opener = opener
@@ -490,7 +490,7 @@
             if flags:
                 raise error.RevlogError(
                     _(b'unknown flags (%#04x) in version %d revlog %s')
-                    % (flags >> 16, fmt, self.indexfile)
+                    % (flags >> 16, fmt, self._indexfile)
                 )
 
             self._inline = False
@@ -500,7 +500,7 @@
             if flags & ~REVLOGV1_FLAGS:
                 raise error.RevlogError(
                     _(b'unknown flags (%#04x) in version %d revlog %s')
-                    % (flags >> 16, fmt, self.indexfile)
+                    % (flags >> 16, fmt, self._indexfile)
                 )
 
             self._inline = versionflags & FLAG_INLINE_DATA
@@ -510,7 +510,7 @@
             if flags & ~REVLOGV2_FLAGS:
                 raise error.RevlogError(
                     _(b'unknown flags (%#04x) in version %d revlog %s')
-                    % (flags >> 16, fmt, self.indexfile)
+                    % (flags >> 16, fmt, self._indexfile)
                 )
 
             # There is a bug in the transaction handling when going from an
@@ -523,7 +523,7 @@
 
         else:
             raise error.RevlogError(
-                _(b'unknown version (%d) in revlog %s') % (fmt, self.indexfile)
+                _(b'unknown version (%d) in revlog %s') % (fmt, self._indexfile)
             )
 
         self.nodeconstants = sha1nodeconstants
@@ -578,7 +578,7 @@
                         index.update_nodemap_data(*nodemap_data)
         except (ValueError, IndexError):
             raise error.RevlogError(
-                _(b"index %s is corrupted") % self.indexfile
+                _(b"index %s is corrupted") % self._indexfile
             )
         self.index, self._chunkcache = d
         if not self._chunkcache:
@@ -604,7 +604,7 @@
             args['checkambig'] = self._checkambig
         if mode == b'w':
             args['atomictemp'] = True
-        return self.opener(self.indexfile, **args)
+        return self.opener(self._indexfile, **args)
 
     def _datafp(self, mode=b'r'):
         """file object for the revlog's data file"""
@@ -729,7 +729,7 @@
                 or node in self.nodeconstants.wdirfilenodeids
             ):
                 raise error.WdirUnsupported
-            raise error.LookupError(node, self.indexfile, _(b'no node'))
+            raise error.LookupError(node, self._indexfile, _(b'no node'))
 
     # Accessors for index entries.
 
@@ -1393,7 +1393,7 @@
             # fast path: for unfiltered changelog, radix tree is accurate
             if not getattr(self, 'filteredrevs', None):
                 raise error.AmbiguousPrefixLookupError(
-                    id, self.indexfile, _(b'ambiguous identifier')
+                    id, self._indexfile, _(b'ambiguous identifier')
                 )
             # fall through to slow path that filters hidden revisions
         except (AttributeError, ValueError):
@@ -1419,7 +1419,7 @@
                         self._pcache[id] = nl[0]
                         return nl[0]
                     raise error.AmbiguousPrefixLookupError(
-                        id, self.indexfile, _(b'ambiguous identifier')
+                        id, self._indexfile, _(b'ambiguous identifier')
                     )
                 if maybewdir:
                     raise error.WdirUnsupported
@@ -1439,7 +1439,7 @@
         if n:
             return n
 
-        raise error.LookupError(id, self.indexfile, _(b'no match found'))
+        raise error.LookupError(id, self._indexfile, _(b'no match found'))
 
     def shortest(self, node, minlength=1):
         """Find the shortest unambiguous prefix that matches node."""
@@ -1453,7 +1453,7 @@
                 # single 'ff...' match
                 return True
             if matchednode is None:
-                raise error.LookupError(node, self.indexfile, _(b'no node'))
+                raise error.LookupError(node, self._indexfile, _(b'no node'))
             return True
 
         def maybewdir(prefix):
@@ -1474,7 +1474,9 @@
                 return disambiguate(hexnode, length)
             except error.RevlogError:
                 if node != self.nodeconstants.wdirid:
-                    raise error.LookupError(node, self.indexfile, _(b'no node'))
+                    raise error.LookupError(
+                        node, self._indexfile, _(b'no node')
+                    )
             except AttributeError:
                 # Fall through to pure code
                 pass
@@ -1545,7 +1547,7 @@
                         b'offset %d, got %d'
                     )
                     % (
-                        self.indexfile if self._inline else self.datafile,
+                        self._indexfile if self._inline else self.datafile,
                         length,
                         realoffset,
                         len(d) - startoffset,
@@ -1561,7 +1563,7 @@
                     b'%d, got %d'
                 )
                 % (
-                    self.indexfile if self._inline else self.datafile,
+                    self._indexfile if self._inline else self.datafile,
                     length,
                     offset,
                     len(d),
@@ -1932,11 +1934,11 @@
                     revornode = templatefilters.short(hex(node))
                 raise error.RevlogError(
                     _(b"integrity check failed on %s:%s")
-                    % (self.indexfile, pycompat.bytestr(revornode))
+                    % (self._indexfile, pycompat.bytestr(revornode))
                 )
         except error.RevlogError:
             if self._censorable and storageutil.iscensoredtext(text):
-                raise error.CensoredNodeError(self.indexfile, node, text)
+                raise error.CensoredNodeError(self._indexfile, node, text)
             raise
 
     def _enforceinlinesize(self, tr, fp=None):
@@ -1953,10 +1955,10 @@
         ):
             return
 
-        troffset = tr.findoffset(self.indexfile)
+        troffset = tr.findoffset(self._indexfile)
         if troffset is None:
             raise error.RevlogError(
-                _(b"%s not found in the transaction") % self.indexfile
+                _(b"%s not found in the transaction") % self._indexfile
             )
         trindex = 0
         tr.add(self.datafile, 0)
@@ -1988,7 +1990,7 @@
             # the temp file replace the real index when we exit the context
             # manager
 
-        tr.replace(self.indexfile, trindex * self.index.entry_size)
+        tr.replace(self._indexfile, trindex * self.index.entry_size)
         nodemaputil.setup_persistent_nodemap(tr, self)
         self._chunkclear()
 
@@ -2024,7 +2026,7 @@
         """
         if link == nullrev:
             raise error.RevlogError(
-                _(b"attempted to add linkrev -1 to %s") % self.indexfile
+                _(b"attempted to add linkrev -1 to %s") % self._indexfile
             )
 
         if sidedata is None:
@@ -2049,7 +2051,7 @@
                 _(
                     b"%s: size of %d bytes exceeds maximum revlog storage of 2GiB"
                 )
-                % (self.indexfile, len(rawtext))
+                % (self._indexfile, len(rawtext))
             )
 
         node = node or self.hash(rawtext, p1, p2)
@@ -2220,14 +2222,14 @@
         """
         if node == self.nullid:
             raise error.RevlogError(
-                _(b"%s: attempt to add null revision") % self.indexfile
+                _(b"%s: attempt to add null revision") % self._indexfile
             )
         if (
             node == self.nodeconstants.wdirid
             or node in self.nodeconstants.wdirfilenodeids
         ):
             raise error.RevlogError(
-                _(b"%s: attempt to add wdir revision") % self.indexfile
+                _(b"%s: attempt to add wdir revision") % self._indexfile
             )
 
         if self._inline:
@@ -2247,12 +2249,12 @@
                 # offset is "as if" it were in the .d file, so we need to add on
                 # the size of the entry metadata.
                 self._concurrencychecker(
-                    ifh, self.indexfile, offset + curr * self.index.entry_size
+                    ifh, self._indexfile, offset + curr * self.index.entry_size
                 )
             else:
                 # Entries in the .i are a consistent size.
                 self._concurrencychecker(
-                    ifh, self.indexfile, curr * self.index.entry_size
+                    ifh, self._indexfile, curr * self.index.entry_size
                 )
                 self._concurrencychecker(dfh, self.datafile, offset)
 
@@ -2369,7 +2371,7 @@
         curr = len(self) - 1
         if not self._inline:
             transaction.add(self.datafile, offset)
-            transaction.add(self.indexfile, curr * len(entry))
+            transaction.add(self._indexfile, curr * len(entry))
             if data[0]:
                 dfh.write(data[0])
             dfh.write(data[1])
@@ -2378,7 +2380,7 @@
             ifh.write(entry)
         else:
             offset += curr * self.index.entry_size
-            transaction.add(self.indexfile, offset)
+            transaction.add(self._indexfile, offset)
             ifh.write(entry)
             ifh.write(data[0])
             ifh.write(data[1])
@@ -2417,10 +2419,10 @@
         ifh = self._indexfp(b"a+")
         isize = r * self.index.entry_size
         if self._inline:
-            transaction.add(self.indexfile, end + isize)
+            transaction.add(self._indexfile, end + isize)
             dfh = None
         else:
-            transaction.add(self.indexfile, isize)
+            transaction.add(self._indexfile, isize)
             transaction.add(self.datafile, end)
             dfh = self._datafp(b"a+")
 
@@ -2452,12 +2454,12 @@
                 for p in (p1, p2):
                     if not self.index.has_node(p):
                         raise error.LookupError(
-                            p, self.indexfile, _(b'unknown parent')
+                            p, self._indexfile, _(b'unknown parent')
                         )
 
                 if not self.index.has_node(deltabase):
                     raise error.LookupError(
-                        deltabase, self.indexfile, _(b'unknown delta base')
+                        deltabase, self._indexfile, _(b'unknown delta base')
                     )
 
                 baserev = self.rev(deltabase)
@@ -2470,7 +2472,7 @@
                     newlen = len(delta) - hlen
                     if delta[:hlen] != mdiff.replacediffheader(oldlen, newlen):
                         raise error.CensoredBaseError(
-                            self.indexfile, self.node(baserev)
+                            self._indexfile, self.node(baserev)
                         )
 
                 if not flags and self._peek_iscensored(baserev, delta, flush):
@@ -2575,7 +2577,7 @@
         else:
             end += rev * self.index.entry_size
 
-        transaction.add(self.indexfile, end)
+        transaction.add(self._indexfile, end)
 
         # then reset internal state in memory to forget those revisions
         self._revisioncache = None
@@ -2608,7 +2610,7 @@
             dd = 0
 
         try:
-            f = self.opener(self.indexfile)
+            f = self.opener(self._indexfile)
             f.seek(0, io.SEEK_END)
             actual = f.tell()
             f.close()
@@ -2629,7 +2631,7 @@
         return (dd, di)
 
     def files(self):
-        res = [self.indexfile]
+        res = [self._indexfile]
         if not self._inline:
             res.append(self.datafile)
         return res
@@ -2847,7 +2849,7 @@
                     flags = flags | new_flags[0] & ~new_flags[1]
 
                 ifh = destrevlog.opener(
-                    destrevlog.indexfile, b'a+', checkambig=False
+                    destrevlog._indexfile, b'a+', checkambig=False
                 )
                 dfh = None
                 if not destrevlog._inline:
@@ -2899,7 +2901,7 @@
             self.opener,
             target=self.target,
             postfix=b'tmpcensored',
-            indexfile=self.indexfile,
+            indexfile=self._indexfile,
             censorable=True,
         )
         newrl._format_version = self._format_version
@@ -2952,11 +2954,11 @@
                 rawtext, tr, self.linkrev(rev), p1, p2, node, self.flags(rev)
             )
 
-        tr.addbackup(self.indexfile, location=b'store')
+        tr.addbackup(self._indexfile, location=b'store')
         if not self._inline:
             tr.addbackup(self.datafile, location=b'store')
 
-        self.opener.rename(newrl.indexfile, self.indexfile)
+        self.opener.rename(newrl._indexfile, self._indexfile)
         if not self._inline:
             self.opener.rename(newrl.datafile, self.datafile)
 
@@ -2981,7 +2983,7 @@
         if version != state[b'expectedversion']:
             yield revlogproblem(
                 warning=_(b"warning: '%s' uses revlog format %d; expected %d")
-                % (self.indexfile, version, state[b'expectedversion'])
+                % (self._indexfile, version, state[b'expectedversion'])
             )
 
         state[b'skipread'] = set()
@@ -3079,7 +3081,7 @@
         d = {}
 
         if exclusivefiles:
-            d[b'exclusivefiles'] = [(self.opener, self.indexfile)]
+            d[b'exclusivefiles'] = [(self.opener, self._indexfile)]
             if not self._inline:
                 d[b'exclusivefiles'].append((self.opener, self.datafile))
 
--- a/mercurial/revlogutils/nodemap.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/revlogutils/nodemap.py	Mon May 03 12:22:16 2021 +0200
@@ -149,7 +149,7 @@
     if revlog.nodemap_file is None:
         if force:
             revlog.nodemap_file = get_nodemap_file(
-                revlog.opener, revlog.indexfile
+                revlog.opener, revlog._indexfile
             )
         else:
             msg = "calling persist nodemap on a revlog without the feature enabled"
--- a/mercurial/unionrepo.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/unionrepo.py	Mon May 03 12:22:16 2021 +0200
@@ -165,7 +165,7 @@
         linkmapper = None
         changelog2 = changelog.changelog(opener2)
         unionrevlog.__init__(
-            self, opener, self.indexfile, changelog2, linkmapper
+            self, opener, self._indexfile, changelog2, linkmapper
         )
 
 
@@ -174,7 +174,7 @@
         manifest.manifestrevlog.__init__(self, nodeconstants, opener)
         manifest2 = manifest.manifestrevlog(nodeconstants, opener2)
         unionrevlog.__init__(
-            self, opener, self._revlog.indexfile, manifest2, linkmapper
+            self, opener, self._revlog._indexfile, manifest2, linkmapper
         )
 
 
@@ -183,7 +183,7 @@
         filelog.filelog.__init__(self, opener, path)
         filelog2 = filelog.filelog(opener2, path)
         self._revlog = unionrevlog(
-            opener, self._revlog.indexfile, filelog2._revlog, linkmapper
+            opener, self._revlog._indexfile, filelog2._revlog, linkmapper
         )
         self._repo = repo
         self.repotiprev = self._revlog.repotiprev
--- a/mercurial/upgrade_utils/engine.py	Mon May 03 12:22:06 2021 +0200
+++ b/mercurial/upgrade_utils/engine.py	Mon May 03 12:22:16 2021 +0200
@@ -80,12 +80,12 @@
 
     oldvfs = oldrl.opener
     newvfs = newrl.opener
-    oldindex = oldvfs.join(oldrl.indexfile)
-    newindex = newvfs.join(newrl.indexfile)
+    oldindex = oldvfs.join(oldrl._indexfile)
+    newindex = newvfs.join(newrl._indexfile)
     olddata = oldvfs.join(oldrl.datafile)
     newdata = newvfs.join(newrl.datafile)
 
-    with newvfs(newrl.indexfile, b'w'):
+    with newvfs(newrl._indexfile, b'w'):
         pass  # create all the directories
 
     util.copyfile(oldindex, newindex)
--- a/tests/test-contrib-perf.t	Mon May 03 12:22:06 2021 +0200
+++ b/tests/test-contrib-perf.t	Mon May 03 12:22:16 2021 +0200
@@ -411,7 +411,7 @@
    >     from mercurial import (
    import newer module separately in try clause for early Mercurial
   contrib/perf.py:\d+: (re)
-   >     origindexpath = orig.opener.join(orig.indexfile)
+   >     origindexpath = orig.opener.join(indexfile)
    use getvfs()/getsvfs() for early Mercurial
   contrib/perf.py:\d+: (re)
    >     origdatapath = orig.opener.join(orig.datafile)
--- a/tests/test-revlog-raw.py	Mon May 03 12:22:06 2021 +0200
+++ b/tests/test-revlog-raw.py	Mon May 03 12:22:16 2021 +0200
@@ -204,7 +204,7 @@
         flags = rlog.flags(r)
         ifh = dfh = None
         try:
-            ifh = dlog.opener(dlog.indexfile, b'a+')
+            ifh = dlog.opener(dlog._indexfile, b'a+')
             if not dlog._inline:
                 dfh = dlog.opener(dlog.datafile, b'a+')
             dlog._addrevision(