diff mercurial/upgrade.py @ 37444:c8666a9e9e11

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
author Gregory Szorc <gregory.szorc@gmail.com>
date Thu, 05 Apr 2018 17:40:51 -0700
parents 0147a4730420
children 2ce60954b1b7
line wrap: on
line diff
--- 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