Mercurial > hg
annotate mercurial/help/extensions.txt @ 27592:7c9eb2927879
dirstate: add a C implementation for nonnormalentries
Before this patch, there was only a python version of nonnormalentries.
On mozilla-central we have a 10x win by putting this function in C:
% python -m timeit -s \
'from mercurial import hg, ui, parsers; \
repo = hg.repository(ui.ui(), "mozilla-central"); \
m = repo.dirstate._map' \
'parsers.nonnormalentries(m)'
100 loops, best of 3: 3.15 msec per loop
The python implementation runs in 31ms, a similar test gives:
10 loops, best of 3: 31.7 msec per loop
On our big repos, the win is still of 10x with the python implementation running
in 350ms and the C implementation running in 30ms.
author | Laurent Charignon <lcharignon@fb.com> |
---|---|
date | Mon, 21 Dec 2015 16:27:16 -0800 |
parents | da16d21cf4ed |
children |
rev | line source |
---|---|
9540
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
1 Mercurial has the ability to add new features through the use of |
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
2 extensions. Extensions may add new commands, add options to |
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
3 existing commands, change the default behavior of commands, or |
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
4 implement hooks. |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
5 |
12083
ebfc46929f3e
help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents:
10123
diff
changeset
|
6 To enable the "foo" extension, either shipped with Mercurial or in the |
ebfc46929f3e
help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents:
10123
diff
changeset
|
7 Python search path, create an entry for it in your configuration file, |
ebfc46929f3e
help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents:
10123
diff
changeset
|
8 like this:: |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
9 |
9540
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
10 [extensions] |
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
11 foo = |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
12 |
9540
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
13 You may also specify the full path to an extension:: |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
14 |
9540
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
15 [extensions] |
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
16 myfeature = ~/.hgext/myfeature.py |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
17 |
19296
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
18 See :hg:`help config` for more information on configuration files. |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
19 |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
20 Extensions are not loaded by default for a variety of reasons: |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
21 they can increase startup overhead; they may be meant for advanced |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
22 usage only; they may provide potentially dangerous abilities (such |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
23 as letting you destroy or modify history); they might not be ready |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
24 for prime time; or they may alter some usual behaviors of stock |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
25 Mercurial. It is thus up to the user to activate extensions as |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
26 needed. |
da16d21cf4ed
doc: make it easier to read how to enable extensions
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
12083
diff
changeset
|
27 |
12083
ebfc46929f3e
help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents:
10123
diff
changeset
|
28 To explicitly disable an extension enabled in a configuration file of |
ebfc46929f3e
help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents:
10123
diff
changeset
|
29 broader scope, prepend its path with !:: |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
30 |
9540
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
31 [extensions] |
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
32 # disabling extension bar residing in /path/to/extension/bar.py |
10122
0ddbc0299742
extensions help: make disabling example analogous to enabling example
Christian Ebert <blacktrash@gmx.net>
parents:
9540
diff
changeset
|
33 bar = !/path/to/extension/bar.py |
9540
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
34 # ditto, but no path was supplied for extension baz |
10122
0ddbc0299742
extensions help: make disabling example analogous to enabling example
Christian Ebert <blacktrash@gmx.net>
parents:
9540
diff
changeset
|
35 baz = ! |