Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revlogutils/rewrite.py @ 50520:85c5b4b507af
store: use StoreEntry API instead of parsing filename when fixing issue6528
This is more explicit and more robust.
We also introduce a small output change as it make things simpler and this is a
affecting a debug-command.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 15 May 2023 09:00:28 +0200 |
parents | 521fec115dad |
children | e50d1fe7ebb4 |
line wrap: on
line diff
--- a/mercurial/revlogutils/rewrite.py Mon May 15 09:00:13 2023 +0200 +++ b/mercurial/revlogutils/rewrite.py Mon May 15 09:00:28 2023 +0200 @@ -828,8 +828,8 @@ entry for entry in repo.store.datafiles() if ( - entry.unencoded_path.endswith(b'.i') - and entry.is_revlog + entry.is_revlog + and entry.is_revlog_main and entry.revlog_type == store.FILEFLAGS_FILELOG ) ) @@ -842,10 +842,9 @@ found_nothing = True for entry in files: - path = entry.unencoded_path progress.increment() - filename = _get_filename_from_filelog_index(path) - fl = _filelog_from_filename(repo, filename) + filename = entry.target_id + fl = _filelog_from_filename(repo, entry.target_id) # Set of filerevs (or hex filenodes if `to_report`) that need fixing to_fix = set() @@ -861,8 +860,8 @@ node = binascii.hexlify(fl.node(filerev)) raise error.Abort(msg % (filename, node)) if affected: - msg = b"found affected revision %d for filelog '%s'\n" - ui.warn(msg % (filerev, path)) + msg = b"found affected revision %d for file '%s'\n" + ui.warn(msg % (filerev, filename)) found_nothing = False if not dry_run: if to_report: