upgrade: use storageinfo() for obtaining storage metadata
Let's switch to our new API for obtaining information about storage.
This eliminates the last consumer of rawsize() and the opener proxy
from the file storage interface!
Differential Revision: https://phab.mercurial-scm.org/D4748
--- a/mercurial/filelog.py Mon Sep 24 11:56:48 2018 -0700
+++ b/mercurial/filelog.py Mon Sep 24 12:39:34 2018 -0700
@@ -77,7 +77,7 @@
def iscensored(self, rev):
return self._revlog.iscensored(rev)
- # Used by repo upgrade, verify.
+ # Used by repo verify.
def rawsize(self, rev):
return self._revlog.rawsize(rev)
@@ -207,7 +207,7 @@
def indexfile(self, value):
self._revlog.indexfile = value
- # Used by repo upgrade.
+ # Unused.
@property
def opener(self):
return self._revlog.opener
--- a/mercurial/upgrade.py Mon Sep 24 11:56:48 2018 -0700
+++ b/mercurial/upgrade.py Mon Sep 24 12:39:34 2018 -0700
@@ -483,15 +483,13 @@
continue
rl = _revlogfrompath(srcrepo, unencoded)
- revcount += len(rl)
- datasize = 0
- rawsize = 0
+ info = rl.storageinfo(exclusivefiles=True, revisionscount=True,
+ trackedsize=True, storedsize=True)
- for path in rl.files():
- datasize += rl.opener.stat(path).st_size
-
- rawsize += sum(map(rl.rawsize, iter(rl)))
+ revcount += info['revisionscount'] or 0
+ datasize = info['storedsize'] or 0
+ rawsize = info['trackedsize'] or 0
srcsize += datasize
srcrawsize += rawsize
@@ -581,9 +579,8 @@
deltareuse=deltareuse,
deltabothparents=deltabothparents)
- datasize = 0
- for path in newrl.files():
- datasize += newrl.opener.stat(path).st_size
+ info = newrl.storageinfo(storedsize=True)
+ datasize = info['storedsize'] or 0
dstsize += datasize