diff -r 5acbc550d987 -r f59e49f6bee4 mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Jun 05 07:16:29 2022 +0200 +++ b/mercurial/localrepo.py Thu Sep 01 16:51:26 2022 +0200 @@ -2619,16 +2619,23 @@ return tr def _journalfiles(self): - return ( + first = ( (self.svfs, b'journal'), (self.svfs, b'journal.narrowspec'), (self.vfs, b'journal.narrowspec.dirstate'), (self.vfs, b'journal.dirstate'), + ) + middle = [] + dirstate_data = self.dirstate.data_backup_filename(b'journal.dirstate') + if dirstate_data is not None: + middle.append((self.vfs, dirstate_data)) + end = ( (self.vfs, b'journal.branch'), (self.vfs, b'journal.desc'), (bookmarks.bookmarksvfs(self), b'journal.bookmarks'), (self.svfs, b'journal.phaseroots'), ) + return first + tuple(middle) + end def undofiles(self): return [(vfs, undoname(x)) for vfs, x in self._journalfiles()]