upgrade: sniff for filelog type
The upgrade code should never encounter a vanilla revlog
instance: only changelog, manifestrevlog, and filelog should
be seen.
The previous code assumed !changelog & !manifestrevlog meant
file data. So this change feels pretty safe. If nothing else, it
will help tease out typing issues.
Differential Revision: https://phab.mercurial-scm.org/D3152
--- a/mercurial/upgrade.py Thu Apr 05 16:31:45 2018 -0700
+++ b/mercurial/upgrade.py Thu Apr 05 17:40:51 2018 -0700
@@ -480,11 +480,13 @@
mrevcount += len(rl)
msrcsize += datasize
mrawsize += rawsize
- elif isinstance(rl, revlog.revlog):
+ elif isinstance(rl, filelog.filelog):
fcount += 1
frevcount += len(rl)
fsrcsize += datasize
frawsize += rawsize
+ else:
+ error.ProgrammingError('unknown revlog type')
if not revcount:
return