revlog: stop usage of `_indexfile` to computing nodemap path
We now have the radix explicitely lets use the radix explicitely
Differential Revision: https://phab.mercurial-scm.org/D10577
--- a/mercurial/revlog.py Mon May 03 12:22:36 2021 +0200
+++ b/mercurial/revlog.py Mon May 03 12:22:47 2021 +0200
@@ -329,12 +329,10 @@
self._datafile = datafile
self.nodemap_file = None
self.postfix = postfix
+ self.opener = opener
if persistentnodemap:
- self.nodemap_file = nodemaputil.get_nodemap_file(
- opener, self._indexfile
- )
-
- self.opener = opener
+ self.nodemap_file = nodemaputil.get_nodemap_file(self)
+
assert target[0] in ALL_KINDS
assert len(target) == 2
self.target = target
--- a/mercurial/revlogutils/nodemap.py Mon May 03 12:22:36 2021 +0200
+++ b/mercurial/revlogutils/nodemap.py Mon May 03 12:22:47 2021 +0200
@@ -148,9 +148,7 @@
)
if revlog.nodemap_file is None:
if force:
- revlog.nodemap_file = get_nodemap_file(
- revlog.opener, revlog._indexfile
- )
+ revlog.nodemap_file = get_nodemap_file(revlog)
else:
msg = "calling persist nodemap on a revlog without the feature enabled"
raise error.ProgrammingError(msg)
@@ -653,12 +651,9 @@
return entry
-def get_nodemap_file(opener, indexfile):
- if indexfile.endswith(b'.a'):
- pending_path = indexfile[:-4] + b".n.a"
- if opener.exists(pending_path):
+def get_nodemap_file(revlog):
+ if revlog.postfix == b'a':
+ pending_path = revlog.radix + b".n.a"
+ if revlog.opener.exists(pending_path):
return pending_path
- else:
- return indexfile[:-4] + b".n"
- else:
- return indexfile[:-2] + b".n"
+ return revlog.radix + b".n"