diff -r f0cf560475a3 -r f030c7d22032 mercurial/upgrade_utils/engine.py --- a/mercurial/upgrade_utils/engine.py Tue Jul 13 14:54:09 2021 +0530 +++ b/mercurial/upgrade_utils/engine.py Mon Jul 19 22:39:08 2021 +0200 @@ -200,6 +200,17 @@ if not rl_type & store.FILEFLAGS_REVLOG_MAIN: continue + # the store.walk function will wrongly pickup transaction backup and + # get confused. As a quick fix for 5.9 release, we ignore those. + # (this is not a module constants because it seems better to keep the + # hack together) + skip_undo = ( + b'undo.backup.00changelog.i', + b'undo.backup.00manifest.i', + ) + if unencoded in skip_undo: + continue + rl = _revlogfrompath(srcrepo, rl_type, unencoded) info = rl.storageinfo(