diff -r 14e500b58263 -r b399ff55ee6d mercurial/upgrade.py --- 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