# HG changeset patch # User Pierre-Yves David # Date 2021-07-19 20:19:36 # Node ID aa2296893168f36ede481713c6123afd6dfa86ce # Parent f030c7d220326e315c146bb5821b5e280fcd312e upgrade: avoid a traceback in case of unrecognized revlog Without this, in case of revlog name not matching any know pattern we would get a traceback. Raising a clear error seems simpler. Differential Revision: https://phab.mercurial-scm.org/D11202 diff --git a/mercurial/upgrade_utils/engine.py b/mercurial/upgrade_utils/engine.py --- a/mercurial/upgrade_utils/engine.py +++ b/mercurial/upgrade_utils/engine.py @@ -64,7 +64,12 @@ def _revlogfrompath(repo, rl_type, path) ) else: # drop the extension and the `data/` prefix - path = path.rsplit(b'.', 1)[0].split(b'/', 1)[1] + path_part = path.rsplit(b'.', 1)[0].split(b'/', 1) + if len(path_part) < 2: + msg = _('cannot recognize revlog from filename: %s') + msg %= path + raise error.Abort(msg) + path = path_part[1] return filelog.filelog(repo.svfs, path)