changeset 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 65250a66b55c
children cc4b569975ed
files mercurial/upgrade.py
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
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