Mercurial > hg
changeset 28031:6f248ba85309
treemanifest: fix debugrebuildfncache
When I taught debugrebuildfncache about dirlogs in fb92927f9775
(treemanifests: fix streaming clone, 2016-02-04), I added a
last-minute "if 'treemanifest' in repo" guard. That should have been
checking for "... in repo.requirements". Fix that and add tests for
it.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Sun, 07 Feb 2016 21:44:38 -0800 |
parents | ca2a0a654f54 |
children | 8157c6b82f40 |
files | mercurial/repair.py tests/test-treemanifest.t |
diffstat | 2 files changed, 34 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/repair.py Wed Feb 03 15:12:01 2016 +0000 +++ b/mercurial/repair.py Sun Feb 07 21:44:38 2016 -0800 @@ -273,7 +273,7 @@ ui.progress(_('changeset'), None) - if 'treemanifest' in repo: # safe but unnecessary otherwise + if 'treemanifest' in repo.requirements: # safe but unnecessary otherwise for dir in util.dirs(seenfiles): i = 'meta/%s/00manifest.i' % dir d = 'meta/%s/00manifest.d' % dir
--- a/tests/test-treemanifest.t Wed Feb 03 15:12:01 2016 +0000 +++ b/tests/test-treemanifest.t Sun Feb 07 21:44:38 2016 -0800 @@ -465,6 +465,39 @@ $ echo troz >> b/bar/orange/fly/gnat.py $ hg ci -m troz +Verify works + $ hg verify + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + 8 files, 3 changesets, 10 total revisions + +Dirlogs are included in fncache + $ grep meta/.A/00manifest.i .hg/store/fncache + meta/.A/00manifest.i + +Rebuilt fncache includes dirlogs + $ rm .hg/store/fncache + $ hg debugrebuildfncache + adding data/.A/one.txt.i + adding data/.A/two.txt.i + adding data/b/bar/fruits.txt.i + adding data/b/bar/orange/fly/gnat.py.i + adding data/b/bar/orange/fly/housefly.txt.i + adding data/b/foo/apple/bees/flower.py.i + adding data/c.txt.i + adding data/d.py.i + adding meta/.A/00manifest.i + adding meta/b/00manifest.i + adding meta/b/bar/00manifest.i + adding meta/b/bar/orange/00manifest.i + adding meta/b/bar/orange/fly/00manifest.i + adding meta/b/foo/00manifest.i + adding meta/b/foo/apple/00manifest.i + adding meta/b/foo/apple/bees/00manifest.i + 16 items added, 0 removed from fncache + Test cloning a treemanifest repo over http. $ hg serve -p $HGPORT2 -d --pid-file=hg.pid --errorlog=errors.log $ cat hg.pid >> $DAEMON_PIDS