diff -r 486b8a383100 -r 0705afae6253 mercurial/localrepo.py --- a/mercurial/localrepo.py Wed Aug 31 05:48:32 2022 +0200 +++ b/mercurial/localrepo.py Wed Aug 31 06:37:42 2022 +0200 @@ -2618,16 +2618,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()]