diff -r 4cf0542dcbe7 -r 87c184c9bfef mercurial/repair.py --- a/mercurial/repair.py Thu Jun 30 15:26:11 2016 +0100 +++ b/mercurial/repair.py Thu Jun 30 13:06:19 2016 -0700 @@ -167,6 +167,13 @@ tr.startgroup() cl.strip(striprev, tr) mfst.strip(striprev, tr) + if 'treemanifest' in repo.requirements: # safe but unnecessary + # otherwise + for unencoded, encoded, size in repo.store.datafiles(): + if (unencoded.startswith('meta/') and + unencoded.endswith('00manifest.i')): + dir = unencoded[5:-12] + repo.dirlog(dir).strip(striprev, tr) for fn in files: repo.file(fn).strip(striprev, tr) tr.endgroup()