filelog: store filename directly on revlog instance
authorGregory Szorc <gregory.szorc@gmail.com>
Thu, 20 Sep 2018 18:07:42 -0700
changeset 39856 96838b620b9c
parent 39855 62a532045e71
child 39857 8dab7c8a93eb
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
hgext/lfs/wrapper.py
mercurial/filelog.py
--- 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):