Mercurial > hg
changeset 47660:aa2296893168
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
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 19 Jul 2021 22:19:36 +0200 |
parents | f030c7d22032 |
children | b2082426f03a |
files | mercurial/upgrade_utils/engine.py |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/upgrade_utils/engine.py Mon Jul 19 22:39:08 2021 +0200 +++ b/mercurial/upgrade_utils/engine.py Mon Jul 19 22:19:36 2021 +0200 @@ -64,7 +64,12 @@ ) 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)