upgrade: sniff for filelog type
authorGregory Szorc <gregory.szorc@gmail.com>
Thu, 05 Apr 2018 17:40:51 -0700
changeset 37444 c8666a9e9e11
parent 37443 65250a66b55c
child 37445 cc4b569975ed
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
mercurial/upgrade.py
--- 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