##// END OF EJS Templates
verify: check directory manifests...
verify: check directory manifests In repos with treemanifests, there is no specific verification of directory manifest revlogs. It simply collects all file nodes by reading each manifest delta. With treemanifests, that's means calling the manifest._slowreaddelta(). If there are missing revlog entries in a subdirectory revlog, 'hg verify' will simply report the exception that occurred while trying to read the root manifest: manifest@0: reading delta 1700e2e92882: meta/b/00manifest.i@67688a370455: no node This patch changes the verify code to load only the root manifest at first and verify all revisions of it, then verify all revisions of each direct subdirectory, and so on, recursively. The above message becomes b/@0: parent-directory manifest refers to unknown revision 67688a370455 Since the new algorithm reads a single revlog at a time and in order, 'hg verify' on a treemanifest version of the hg core repo goes from ~50s to ~14s. As expected, there is no significant difference on a repo with flat manifests.
Martin von Zweigbergk -
r28203:7297e9e1 default
Show More
Name Size Modified Last Commit Author
/ contrib
chg
debian
docker
hgfixes
hgsh
macosx
plan9
vagrant
vim
win32
wix
Makefile.python Loading ...
all-revsets.txt Loading ...
base-revsets.txt Loading ...
bash_completion Loading ...
builddeb Loading ...
buildrpm Loading ...
casesmash.py Loading ...
check-code.py Loading ...
check-commit Loading ...
check-config.py Loading ...
check-py3-compat.py Loading ...
debugcmdserver.py Loading ...
debugshell.py Loading ...
dirstatenonnormalcheck.py Loading ...
dockerdeb Loading ...
dockerlib.sh Loading ...
dockerrpm Loading ...
dumprevlog Loading ...
editmerge Loading ...
fixpax.py Loading ...
hg-ssh Loading ...
hg-test-mode.el Loading ...
hgclient.py Loading ...
hgk Loading ...
hgperf Loading ...
hgweb.fcgi Loading ...
hgweb.wsgi Loading ...
import-checker.py Loading ...
logo-droplets.svg Loading ...
memory.py Loading ...
mercurial.el Loading ...
mercurial.spec Loading ...
mq.el Loading ...
packagelib.sh Loading ...
perf.py Loading ...
pylintrc Loading ...
python-hook-examples.py Loading ...
revsetbenchmarks.py Loading ...
showstack.py Loading ...
simplemerge Loading ...
synthrepo.py Loading ...
tcsh_completion Loading ...
tcsh_completion_build.sh Loading ...
undumprevlog Loading ...
xml.rnc Loading ...
zsh_completion Loading ...