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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12427
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
1 Test document extraction
9446
57d682d7d2da test-gendoc: test documentation generation
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
2
12427
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
3 $ "$TESTDIR/hghave" docutils || exit 80
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
4 $ HGENCODING=UTF-8
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
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
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
8 > echo
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
9 > echo "% extracting documentation from $LOCALE"
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
10 > echo ".. -*- coding: utf-8 -*-" > gendoc-$LOCALE.txt
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
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
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
13 >
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
14 > # We call runrst without adding "--halt warning" to make it report
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
15 > # all errors instead of stopping on the first one.
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
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
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
18 > done
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
19
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
20 % extracting documentation from C
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
21 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
22
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
23 % extracting documentation from da
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
24 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
25
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
26 % extracting documentation from de
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
27 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
28
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
29 % extracting documentation from el
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
30 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
31
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
32 % extracting documentation from fr
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
33 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
34
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
35 % extracting documentation from it
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
36 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
37
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
38 % extracting documentation from ja
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
39 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
40
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
41 % extracting documentation from pt_BR
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
42 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
43
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
44 % extracting documentation from ro
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
45 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
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
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
50 % extracting documentation from sv
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
51 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
52
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
53 % extracting documentation from zh_CN
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
54 checking for parse errors
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
55
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
56 % extracting documentation from zh_TW
f933b99eeb14 tests: unify test-gendoc
Matt Mackall <mpm@selenic.com>
parents: 12397
diff changeset
57 checking for parse errors