Mon, 24 Sep 2018 09:37:19 -0700 upgrade: report size of backing files, not internal storage size
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Sep 2018 09:37:19 -0700] rev 39862
upgrade: report size of backing files, not internal storage size upgrade.py is the only consumer of filelog.index, which I'd like to eliminate from the file storage interface. This commit changes the upgrade code to report the storage size of files by looking at the size of the files backing its storage instead of looking at the index. I'm not convinced the approach in this patch will live very long because it is relying on low-level attributes like "opener" and "files," which may behave very differently on non-revlog storage. But the data is only used for reporting purposes and it does get us one step closer to eliminating "index." A side-effect of this change is we now report the size of the revlog index data - not just the revision data. I think this is more accurate. Differential Revision: https://phab.mercurial-scm.org/D4717
Thu, 20 Sep 2018 18:07:42 -0700 filelog: store filename directly on revlog instance
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 20 Sep 2018 18:07:42 -0700] rev 39861
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
Thu, 20 Sep 2018 17:47:34 -0700 lfs: access revlog directly
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 20 Sep 2018 17:47:34 -0700] rev 39860
lfs: access revlog directly LFS is monkeypatching filelog.filelog and is then accessing various filelog attributes in the monkeypatched function. This is all fine. But some of the attributes being accessed by LFS are revlog centric and shouldn't be exposed on the file storage interface. This commit changes the monkeypatched functions to access proxied attributes on self._revlog instead of self. This should be safe to do because non-revlog repositories should not be using filelog instances: instead they should have a separate class to represent file storage. So it is reasonable for LFS to assume the _revlog attribute exists and points to a revlog. Differential Revision: https://phab.mercurial-scm.org/D4714
(0) -30000 -10000 -3000 -1000 -300 -100 -30 -10 -3 +3 +10 +30 +100 +300 +1000 +3000 +10000 tip