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!
pulkit |
hg-reviewers |
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!
Automatic diff as part of commit; lint not applicable. |
Automatic diff as part of commit; unit tests not applicable. |
Path | Packages | |||
---|---|---|---|---|
M | mercurial/filelog.py (4 lines) | |||
M | mercurial/upgrade.py (17 lines) |
return self._revlog.children(node) | return self._revlog.children(node) | ||||
def deltaparent(self, rev): | def deltaparent(self, rev): | ||||
return self._revlog.deltaparent(rev) | return self._revlog.deltaparent(rev) | ||||
def iscensored(self, rev): | def iscensored(self, rev): | ||||
return self._revlog.iscensored(rev) | return self._revlog.iscensored(rev) | ||||
# Used by repo upgrade, verify. | # Used by repo verify. | ||||
def rawsize(self, rev): | def rawsize(self, rev): | ||||
return self._revlog.rawsize(rev) | return self._revlog.rawsize(rev) | ||||
# Might be unused. | # Might be unused. | ||||
def checkhash(self, text, node, p1=None, p2=None, rev=None): | def checkhash(self, text, node, p1=None, p2=None, rev=None): | ||||
return self._revlog.checkhash(text, node, p1=p1, p2=p2, rev=rev) | return self._revlog.checkhash(text, node, p1=p1, p2=p2, rev=rev) | ||||
def revision(self, node, _df=None, raw=False): | def revision(self, node, _df=None, raw=False): | ||||
@property | @property | ||||
def indexfile(self): | def indexfile(self): | ||||
return self._revlog.indexfile | return self._revlog.indexfile | ||||
@indexfile.setter | @indexfile.setter | ||||
def indexfile(self, value): | def indexfile(self, value): | ||||
self._revlog.indexfile = value | self._revlog.indexfile = value | ||||
# Used by repo upgrade. | # Unused. | ||||
@property | @property | ||||
def opener(self): | def opener(self): | ||||
return self._revlog.opener | return self._revlog.opener | ||||
# Used by repo upgrade. | # Used by repo upgrade. | ||||
def clone(self, tr, destrevlog, **kwargs): | def clone(self, tr, destrevlog, **kwargs): | ||||
if not isinstance(destrevlog, filelog): | if not isinstance(destrevlog, filelog): | ||||
raise error.ProgrammingError('expected filelog to clone()') | raise error.ProgrammingError('expected filelog to clone()') |
# Perform a pass to collect metadata. This validates we can open all | # Perform a pass to collect metadata. This validates we can open all | ||||
# source files and allows a unified progress bar to be displayed. | # source files and allows a unified progress bar to be displayed. | ||||
for unencoded, encoded, size in srcrepo.store.walk(): | for unencoded, encoded, size in srcrepo.store.walk(): | ||||
if unencoded.endswith('.d'): | if unencoded.endswith('.d'): | ||||
continue | continue | ||||
rl = _revlogfrompath(srcrepo, unencoded) | rl = _revlogfrompath(srcrepo, unencoded) | ||||
revcount += len(rl) | |||||
datasize = 0 | info = rl.storageinfo(exclusivefiles=True, revisionscount=True, | ||||
rawsize = 0 | trackedsize=True, storedsize=True) | ||||
for path in rl.files(): | revcount += info['revisionscount'] or 0 | ||||
datasize += rl.opener.stat(path).st_size | datasize = info['storedsize'] or 0 | ||||
rawsize = info['trackedsize'] or 0 | |||||
rawsize += sum(map(rl.rawsize, iter(rl))) | |||||
srcsize += datasize | srcsize += datasize | ||||
srcrawsize += rawsize | srcrawsize += rawsize | ||||
# This is for the separate progress bars. | # This is for the separate progress bars. | ||||
if isinstance(rl, changelog.changelog): | if isinstance(rl, changelog.changelog): | ||||
crevcount += len(rl) | crevcount += len(rl) | ||||
csrcsize += datasize | csrcsize += datasize | ||||
total=frevcount) | total=frevcount) | ||||
ui.note(_('cloning %d revisions from %s\n') % (len(oldrl), unencoded)) | ui.note(_('cloning %d revisions from %s\n') % (len(oldrl), unencoded)) | ||||
oldrl.clone(tr, newrl, addrevisioncb=oncopiedrevision, | oldrl.clone(tr, newrl, addrevisioncb=oncopiedrevision, | ||||
deltareuse=deltareuse, | deltareuse=deltareuse, | ||||
deltabothparents=deltabothparents) | deltabothparents=deltabothparents) | ||||
datasize = 0 | info = newrl.storageinfo(storedsize=True) | ||||
for path in newrl.files(): | datasize = info['storedsize'] or 0 | ||||
datasize += newrl.opener.stat(path).st_size | |||||
dstsize += datasize | dstsize += datasize | ||||
if isinstance(newrl, changelog.changelog): | if isinstance(newrl, changelog.changelog): | ||||
cdstsize += datasize | cdstsize += datasize | ||||
elif isinstance(newrl, manifest.manifestrevlog): | elif isinstance(newrl, manifest.manifestrevlog): | ||||
mdstsize += datasize | mdstsize += datasize | ||||
else: | else: |