Mercurial > hg
annotate tests/test-gendoc.t @ 18792:10669e24eb6c
completion: add a debugpathcomplete command
The bash_completion code uses "hg status" to generate a list of
possible completions for commands that operate on files in the
working directory. In a large working directory, this can result
in a single tab-completion being very slow (several seconds) as a
result of checking the status of every file, even when there is no
need to check status or no possible matches.
The new debugpathcomplete command gains performance in a few simple
ways:
* Allow completion to operate on just a single directory. When used
to complete the right commands, this considerably reduces the
number of completions returned, at no loss in functionality.
* Never check the status of files. For completions that really must
know if a file is modified, it is faster to use status:
hg status -nm 'glob:myprefix**'
Performance:
Here are the commands used by bash_completion to complete, run in
the root of the mozilla-central working dir (~77,000 files) and
another repo (~165,000 files):
All "normal state" files (used by e.g. remove, revert):
mozilla other
status -nmcd 'glob:**' 1.77 4.10 sec
debugpathcomplete -f -n 0.53 1.26
debugpathcomplete -n 0.17 0.41
("-f" means "complete full paths", rather than the current directory)
Tracked files matching "a":
mozilla other
status -nmcd 'glob:a**' 0.26 0.47
debugpathcomplete -f -n a 0.10 0.24
debugpathcomplete -n a 0.10 0.22
We should be able to further improve completion performance once
the critbit work lands. Right now, our performance is limited by
the need to iterate over all keys in the dirstate.
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Thu, 21 Mar 2013 16:31:28 -0700 |
parents | 4f795f5fbb0b |
children | f27deed5c23f |
rev | line source |
---|---|
12427 | 1 Test document extraction |
9446
57d682d7d2da
test-gendoc: test documentation generation
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
2 |
12427 | 3 $ "$TESTDIR/hghave" docutils || exit 80 |
4 $ HGENCODING=UTF-8 | |
5 $ export HGENCODING | |
16350
4f795f5fbb0b
tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents:
14475
diff
changeset
|
6 $ { echo C; find "$TESTDIR/../i18n" -name "*.po" | sort; } | while read PO; do |
4f795f5fbb0b
tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents:
14475
diff
changeset
|
7 > LOCALE=`basename "$PO" .po` |
12427 | 8 > echo |
9 > echo "% extracting documentation from $LOCALE" | |
10 > echo ".. -*- coding: utf-8 -*-" > gendoc-$LOCALE.txt | |
11 > echo "" >> gendoc-$LOCALE.txt | |
16350
4f795f5fbb0b
tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents:
14475
diff
changeset
|
12 > LC_ALL=$LOCALE python "$TESTDIR/../doc/gendoc.py" >> gendoc-$LOCALE.txt 2> /dev/null || exit |
12427 | 13 > |
14 > # We call runrst without adding "--halt warning" to make it report | |
15 > # all errors instead of stopping on the first one. | |
16 > echo "checking for parse errors" | |
16350
4f795f5fbb0b
tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents:
14475
diff
changeset
|
17 > python "$TESTDIR/../doc/runrst" html gendoc-$LOCALE.txt /dev/null |
12427 | 18 > done |
19 | |
20 % extracting documentation from C | |
21 checking for parse errors | |
22 | |
23 % extracting documentation from da | |
24 checking for parse errors | |
25 | |
26 % extracting documentation from de | |
27 checking for parse errors | |
28 | |
29 % extracting documentation from el | |
30 checking for parse errors | |
31 | |
32 % extracting documentation from fr | |
33 checking for parse errors | |
34 | |
35 % extracting documentation from it | |
36 checking for parse errors | |
37 | |
38 % extracting documentation from ja | |
39 checking for parse errors | |
40 | |
41 % extracting documentation from pt_BR | |
42 checking for parse errors | |
43 | |
44 % extracting documentation from ro | |
45 checking for parse errors | |
46 | |
14475
ac9a89dbdc00
test-gendoc: update for new Russian translation
Martin Geisler <mg@lazybytes.net>
parents:
12427
diff
changeset
|
47 % extracting documentation from ru |
ac9a89dbdc00
test-gendoc: update for new Russian translation
Martin Geisler <mg@lazybytes.net>
parents:
12427
diff
changeset
|
48 checking for parse errors |
ac9a89dbdc00
test-gendoc: update for new Russian translation
Martin Geisler <mg@lazybytes.net>
parents:
12427
diff
changeset
|
49 |
12427 | 50 % extracting documentation from sv |
51 checking for parse errors | |
52 | |
53 % extracting documentation from zh_CN | |
54 checking for parse errors | |
55 | |
56 % extracting documentation from zh_TW | |
57 checking for parse errors |