Mercurial > hg
annotate tests/test-gendoc.t @ 38893:23d582caae30
changegroup: capture revision delta in a data structure
The current changegroup generation code is tightly coupled to
the revlog API. This tight coupling makes it difficult to implement
alternate storage backends without requiring a large surface area
of the revlog API to be exposed. This is not desirable.
In order to support changegroup generation with non-revlog storage,
we'll need to abstract the concept of delta generation.
This commit is the first step down that road. We introduce a
data structure for representing a delta in a changegroup.
The API still leaves a lot to be desired. But at least we now
have separation between data and actions performed on it.
As part of this, we tweak behavior slightly: we no longer
concatenate the delta prefix with the metadata header. Instead,
we track and emit the prefix as a separate chunk. This shouldn't
have any meaningful impact since all the chunks just get sent to
the wire, the compressor, etc.
Because we're introducing a new object, this does add some
overhead to changegroup execution. `hg perfchangegroupchangelog`
on my clone of the Mercurial repo (~40,000 visible revisions in
the changelog) slows down a bit:
! wall 1.268600 comb 1.270000 user 1.270000 sys 0.000000 (best of 8)
! wall 1.419479 comb 1.410000 user 1.410000 sys 0.000000 (best of 8)
With for `hg bundle -t none-v2 -a /dev/null`:
before: real 6.610 secs (user 6.460+0.000 sys 0.140+0.000)
after: real 7.210 secs (user 7.060+0.000 sys 0.140+0.000)
I plan to claw back this regression in future commits. And I may
even do away with this data structure once the refactor is complete.
For now, it makes things easier to comprehend.
Differential Revision: https://phab.mercurial-scm.org/D4075
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Fri, 03 Aug 2018 10:05:26 -0700 |
parents | 75be14993fda |
children | 5abc47d4ca6b |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20390
diff
changeset
|
1 #require docutils |
24043
1fdb1d909c79
test-gendoc: require gettext
Eric Sumner <ericsumner@fb.com>
parents:
22046
diff
changeset
|
2 #require gettext |
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20390
diff
changeset
|
3 |
12427 | 4 Test document extraction |
9446
57d682d7d2da
test-gendoc: test documentation generation
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
5 |
12427 | 6 $ HGENCODING=UTF-8 |
7 $ export HGENCODING | |
20390
3fedc29a98bb
tests: use ls instead of find, all files are in the same directory
Simon Heimberg <simohe@besonet.ch>
parents:
19923
diff
changeset
|
8 $ { echo C; ls "$TESTDIR/../i18n"/*.po | sort; } | while read PO; do |
16350
4f795f5fbb0b
tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents:
14475
diff
changeset
|
9 > LOCALE=`basename "$PO" .po` |
12427 | 10 > echo "% extracting documentation from $LOCALE" |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
28809
diff
changeset
|
11 > LANGUAGE=$LOCALE $PYTHON "$TESTDIR/../doc/gendoc.py" >> gendoc-$LOCALE.txt 2> /dev/null || exit |
12427 | 12 > |
19923
52bc80d0769f
tests: test-gendoc.t checks if anything was translated
Simon Heimberg <simohe@besonet.ch>
parents:
19922
diff
changeset
|
13 > if [ $LOCALE != C ]; then |
28809
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
14 > if [ ! -f $TESTDIR/test-gendoc-$LOCALE.t ]; then |
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
15 > echo missing test-gendoc-$LOCALE.t |
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
16 > fi |
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
17 > cmp -s gendoc-C.txt gendoc-$LOCALE.txt && echo "** NOTHING TRANSLATED ($LOCALE) **" |
19923
52bc80d0769f
tests: test-gendoc.t checks if anything was translated
Simon Heimberg <simohe@besonet.ch>
parents:
19922
diff
changeset
|
18 > fi |
28809
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
19 > done; true |
12427 | 20 % extracting documentation from C |
21 % extracting documentation from da | |
22 % extracting documentation from de | |
23 % extracting documentation from el | |
24 % extracting documentation from fr | |
25 % extracting documentation from it | |
26 % extracting documentation from ja | |
27 % extracting documentation from pt_BR | |
28 % extracting documentation from ro | |
14475
ac9a89dbdc00
test-gendoc: update for new Russian translation
Martin Geisler <mg@lazybytes.net>
parents:
12427
diff
changeset
|
29 % extracting documentation from ru |
12427 | 30 % extracting documentation from sv |
31 % extracting documentation from zh_CN | |
32 % extracting documentation from zh_TW |