# HG changeset patch # User Pierre-Yves David # Date 2023-05-15 07:01:53 # Node ID 5f636e0fec4ae8a61330df142549b9c0a34b6642 # Parent 0935b9db21b6e85904b2e91c86fd6c3294831dbb upgrade: actually use StoreEntry API to create revlog Lets make use of the semanctic of the object we are passed. 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 @@ -52,26 +52,15 @@ def _revlog_from_store_entry(repo, entry An instance of the appropriate class is returned. """ - rl_type = entry.revlog_type - path = entry.unencoded_path - if rl_type & store.FILEFLAGS_CHANGELOG: + if entry.revlog_type == store.FILEFLAGS_CHANGELOG: return changelog.changelog(repo.svfs) - elif rl_type & store.FILEFLAGS_MANIFESTLOG: - mandir = b'' - if b'/' in path: - mandir = path.rsplit(b'/', 1)[0] + elif entry.revlog_type == store.FILEFLAGS_MANIFESTLOG: + mandir = entry.target_id.rstrip(b'/') return manifest.manifestrevlog( repo.nodeconstants, repo.svfs, tree=mandir ) else: - # drop the extension and the `data/` prefix - path_part = path.rsplit(b'.', 1)[0].split(b'/', 1) - if len(path_part) < 2: - msg = _(b'cannot recognize revlog from filename: %s') - msg %= path - raise error.Abort(msg) - path = path_part[1] - return filelog.filelog(repo.svfs, path) + return filelog.filelog(repo.svfs, entry.target_id) def _copyrevlog(tr, destrepo, oldrl, entry):