Mercurial > hg
annotate tests/test-context.py.out @ 50400:95acba2c29f6
encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings
Apparently the code uses "+=" with a bytes object, which is linear-time, so the
whole encoding is quadratic-time. This patch makes us use a bytearray object,
instead, which has a(n amortized-)constant-time append operation.
The encoding is still not particularly fast, but at least a 10MB file
takes tens of seconds, not many hours to encode.
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Mon, 06 Mar 2023 11:27:57 +0000 |
parents | 6ae068f801e3 |
children |
rev | line source |
---|---|
4110
20af6a2f0b0e
Fixed workingfilectx.date() (found by Thomas Waldmann) with test.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
1 workingfilectx.date = (1000, 0) |
14379
bd23d5f28bbb
changelog: convert user and desc from local encoding early
Martin Geisler <mg@aragost.com>
parents:
4110
diff
changeset
|
2 ASCII : Gr?ezi! |
bd23d5f28bbb
changelog: convert user and desc from local encoding early
Martin Geisler <mg@aragost.com>
parents:
4110
diff
changeset
|
3 Latin-1 : Grüezi! |
bd23d5f28bbb
changelog: convert user and desc from local encoding early
Martin Geisler <mg@aragost.com>
parents:
4110
diff
changeset
|
4 UTF-8 : Grüezi! |
22914
c95db3208a33
status: update various other methods to return new class
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
21837
diff
changeset
|
5 <status modified=['foo'], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
21837
61b333b982ea
test-context: add test for performing a diff on a memctx
Sean Farley <sean.michael.farley@gmail.com>
parents:
21836
diff
changeset
|
6 diff --git a/foo b/foo |
61b333b982ea
test-context: add test for performing a diff on a memctx
Sean Farley <sean.michael.farley@gmail.com>
parents:
21836
diff
changeset
|
7 --- a/foo |
61b333b982ea
test-context: add test for performing a diff on a memctx
Sean Farley <sean.michael.farley@gmail.com>
parents:
21836
diff
changeset
|
8 +++ b/foo |
61b333b982ea
test-context: add test for performing a diff on a memctx
Sean Farley <sean.michael.farley@gmail.com>
parents:
21836
diff
changeset
|
9 @@ -1,1 +1,2 @@ |
61b333b982ea
test-context: add test for performing a diff on a memctx
Sean Farley <sean.michael.farley@gmail.com>
parents:
21836
diff
changeset
|
10 foo |
61b333b982ea
test-context: add test for performing a diff on a memctx
Sean Farley <sean.michael.farley@gmail.com>
parents:
21836
diff
changeset
|
11 +bar |
23700
a4958cdb2202
context: cache self._status correctly at workingctx.status
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22914
diff
changeset
|
12 = checking context.status(): |
a4958cdb2202
context: cache self._status correctly at workingctx.status
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22914
diff
changeset
|
13 == checking workingctx.status: |
a4958cdb2202
context: cache self._status correctly at workingctx.status
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22914
diff
changeset
|
14 wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]> |
23709
33e5431684c0
context: make unknown/ignored/clean of cached status empty for equivalence
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23700
diff
changeset
|
15 === with "pattern match": |
23700
a4958cdb2202
context: cache self._status correctly at workingctx.status
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22914
diff
changeset
|
16 <status modified=['bar-m'], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
a4958cdb2202
context: cache self._status correctly at workingctx.status
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22914
diff
changeset
|
17 wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]> |
a4958cdb2202
context: cache self._status correctly at workingctx.status
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22914
diff
changeset
|
18 <status modified=[], added=['bar-m'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
a4958cdb2202
context: cache self._status correctly at workingctx.status
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22914
diff
changeset
|
19 wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]> |
23709
33e5431684c0
context: make unknown/ignored/clean of cached status empty for equivalence
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23700
diff
changeset
|
20 === with "always match" and "listclean=True": |
33e5431684c0
context: make unknown/ignored/clean of cached status empty for equivalence
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23700
diff
changeset
|
21 <status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=['foo']> |
33e5431684c0
context: make unknown/ignored/clean of cached status empty for equivalence
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23700
diff
changeset
|
22 wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]> |
33e5431684c0
context: make unknown/ignored/clean of cached status empty for equivalence
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23700
diff
changeset
|
23 <status modified=[], added=['bar-a', 'bar-m'], removed=[], deleted=[], unknown=[], ignored=[], clean=['foo']> |
33e5431684c0
context: make unknown/ignored/clean of cached status empty for equivalence
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23700
diff
changeset
|
24 wctx._status=<status modified=['bar-m'], added=['bar-a'], removed=['bar-r'], deleted=[], unknown=[], ignored=[], clean=[]> |
23711
1e6fb8db666e
context: avoid breaking already fixed self._status at ctx.status()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23709
diff
changeset
|
25 == checking workingcommitctx.status: |
1e6fb8db666e
context: avoid breaking already fixed self._status at ctx.status()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23709
diff
changeset
|
26 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
1e6fb8db666e
context: avoid breaking already fixed self._status at ctx.status()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23709
diff
changeset
|
27 === with "always match": |
23712
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
28 <status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
23711
1e6fb8db666e
context: avoid breaking already fixed self._status at ctx.status()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23709
diff
changeset
|
29 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
23712
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
30 <status modified=[], added=['bar-a', 'bar-m', 'bar-r'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
23711
1e6fb8db666e
context: avoid breaking already fixed self._status at ctx.status()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23709
diff
changeset
|
31 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
1e6fb8db666e
context: avoid breaking already fixed self._status at ctx.status()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23709
diff
changeset
|
32 === with "always match" and "listclean=True": |
23712
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
33 <status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=['bar-r', 'foo']> |
23711
1e6fb8db666e
context: avoid breaking already fixed self._status at ctx.status()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23709
diff
changeset
|
34 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
23712
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
35 <status modified=[], added=['bar-a', 'bar-m', 'bar-r'], removed=[], deleted=[], unknown=[], ignored=[], clean=['foo']> |
23711
1e6fb8db666e
context: avoid breaking already fixed self._status at ctx.status()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23709
diff
changeset
|
36 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
23712
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
37 === with "pattern match": |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
38 <status modified=['bar-m'], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
39 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
40 <status modified=[], added=['bar-m'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
41 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
42 === with "pattern match" and "listclean=True": |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
43 <status modified=[], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=['bar-r', 'foo']> |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
44 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
45 <status modified=[], added=['bar-r'], removed=[], deleted=[], unknown=[], ignored=[], clean=['foo']> |
bfce25d25c96
context: override _dirstatestatus in workingcommitctx for correct matching
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
23711
diff
changeset
|
46 wcctx._status=<status modified=['bar-m'], added=['bar-a'], removed=[], deleted=[], unknown=[], ignored=[], clean=[]> |
32518
bb628fc85b0e
test-context: add a case demonstrating manifest caching problem
Jun Wu <quark@fb.com>
parents:
31270
diff
changeset
|
47 == commit with manifestlog invalidated |
bb628fc85b0e
test-context: add a case demonstrating manifest caching problem
Jun Wu <quark@fb.com>
parents:
31270
diff
changeset
|
48 commit 1: 2efe531a913fa648867ab8824360371679d05a65 |
bb628fc85b0e
test-context: add a case demonstrating manifest caching problem
Jun Wu <quark@fb.com>
parents:
31270
diff
changeset
|
49 commit 2: 2caca91f6362020334384ebe27bae67315298abf |
bb628fc85b0e
test-context: add a case demonstrating manifest caching problem
Jun Wu <quark@fb.com>
parents:
31270
diff
changeset
|
50 commit 3: abd6b0f49f338be22b094ef2b7425e8048f8337b |