filelog: store filename directly on revlog instance
This attribute is only used by LFS. It is used by one of the revlog
flag processor functions, which gets an instance of the revlog - not
the file storage type. So, it makes sense to store this attribute on
the revlog instead of the filelog.
With this change, I'm pretty confident that LFS is no longer directly
accessing file storage interface members that are revlog centric. i.e.
it gets us one step closer to eliminating revlog-centric APIs from the
file storage interface!
Differential Revision: https://phab.mercurial-scm.org/D4715
--- a/hgext/lfs/wrapper.py Thu Sep 20 17:47:34 2018 -0700
+++ b/hgext/lfs/wrapper.py Thu Sep 20 18:07:42 2018 -0700
@@ -136,7 +136,7 @@
if offset:
textlen -= offset
- if lfstrack(self.filename, textlen):
+ if lfstrack(self._revlog.filename, textlen):
flags |= revlog.REVIDX_EXTSTORED
return orig(self, text, transaction, link, p1, p2, cachedelta=cachedelta,
--- a/mercurial/filelog.py Thu Sep 20 17:47:34 2018 -0700
+++ b/mercurial/filelog.py Thu Sep 20 18:07:42 2018 -0700
@@ -24,7 +24,7 @@
censorable=True)
# Full name of the user visible file, relative to the repository root.
# Used by LFS.
- self.filename = path
+ self._revlog.filename = path
# Used by repo upgrade.
self.index = self._revlog.index
# Used by changegroup generation.
@@ -189,15 +189,6 @@
# TODO these aren't part of the interface and aren't internal methods.
# Callers should be fixed to not use them.
- # Used by LFS.
- @property
- def filename(self):
- return self._revlog.filename
-
- @filename.setter
- def filename(self, value):
- self._revlog.filename = value
-
# Used by bundlefilelog, unionfilelog.
@property
def indexfile(self):