Mercurial > hg
annotate tests/test-patch-offset.t @ 16719:e7bf09acd410
localrepo: add branchtip() method for faster single-branch lookups
For the PyPy repo with 744 branches and 843 branch heads, this brings
hg log -r default over NFS from:
CallCount Recursive Total(ms) Inline(ms) module:lineno(function)
3249 0 1.3222 1.3222 <open>
3244 0 0.6211 0.6211 <method 'close' of 'file' objects>
3243 0 0.0800 0.0800 <method 'read' of 'file' objects>
3241 0 0.0660 0.0660 <method 'seek' of 'file' objects>
3905 0 0.0476 0.0476 <zlib.decompress>
3281 0 2.6756 0.0472 mercurial.changelog:182(read)
+3281 0 2.5256 0.0453 +mercurial.revlog:881(revision)
+3276 0 0.0389 0.0196 +mercurial.changelog:28(decodeextra)
+6562 0 0.0123 0.0123 +<method 'split' of 'str' objects>
+6562 0 0.0408 0.0073 +mercurial.encoding:61(tolocal)
+3281 0 0.0054 0.0054 +<method 'index' of 'str' objects>
3241 0 2.2464 0.0456 mercurial.revlog:818(_loadchunk)
+3241 0 0.6205 0.6205 +<method 'close' of 'file' objects>
+3241 0 0.0765 0.0765 +<method 'read' of 'file' objects>
+3241 0 0.0660 0.0660 +<method 'seek' of 'file' objects>
+3241 0 1.4209 0.0135 +mercurial.store:374(__call__)
+3241 0 0.0122 0.0107 +mercurial.revlog:810(_addchunk)
3281 0 2.5256 0.0453 mercurial.revlog:881(revision)
+3280 0 0.0175 0.0175 +mercurial.revlog:305(rev)
+3281 0 2.2819 0.0119 +mercurial.revlog:847(_chunkraw)
+3281 0 0.0603 0.0083 +mercurial.revlog:945(_checkhash)
+3281 0 0.0051 0.0051 +mercurial.revlog:349(flags)
+3281 0 0.0040 0.0040 +<mercurial.mpatch.patches>
13682 0 0.0479 0.0248 <method 'decode' of 'str' objects>
+7418 0 0.0228 0.0076 +encodings.utf_8:15(decode)
+1 0 0.0003 0.0000 +encodings:71(search_function)
3248 0 1.3995 0.0246 mercurial.scmutil:218(__call__)
+3248 0 1.3222 1.3222 +<open>
+3248 0 0.0235 0.0184 +os.path:80(split)
+3248 0 0.0084 0.0068 +mercurial.scmutil:92(__call__)
Time: real 2.750 secs (user 0.680+0.000 sys 0.360+0.000)
down to:
CallCount Recursive Total(ms) Inline(ms) module:lineno(function)
55 31 0.0197 0.0163 <__import__>
+1 0 0.0006 0.0002 +mercurial.context:8(<module>)
+1 0 0.0042 0.0001 +mercurial.revlog:12(<module>)
+1 0 0.0002 0.0001 +mercurial.match:8(<module>)
+1 0 0.0003 0.0001 +mercurial.dirstate:7(<module>)
+1 0 0.0057 0.0001 +mercurial.changelog:8(<module>)
1 0 0.0117 0.0032 mercurial.localrepo:525(_readbranchcache)
+844 0 0.0015 0.0015 +<binascii.unhexlify>
+845 0 0.0010 0.0010 +<method 'split' of 'str' objects>
+843 0 0.0045 0.0009 +mercurial.encoding:61(tolocal)
+843 0 0.0004 0.0004 +<method 'setdefault' of 'dict' objects>
+1 0 0.0003 0.0003 +<method 'close' of 'file' objects>
3 0 0.0029 0.0029 <method 'read' of 'file' objects>
9 0 0.0018 0.0018 <open>
990 0 0.0017 0.0017 <binascii.unhexlify>
53 0 0.0016 0.0016 mercurial.demandimport:43(__init__)
862 0 0.0015 0.0015 <_codecs.utf_8_decode>
862 0 0.0037 0.0014 <method 'decode' of 'str' objects>
+862 0 0.0023 0.0008 +encodings.utf_8:15(decode)
981 0 0.0011 0.0011 <method 'split' of 'str' objects>
861 0 0.0046 0.0009 mercurial.encoding:61(tolocal)
+861 0 0.0037 0.0014 +<method 'decode' of 'str' objects>
862 0 0.0023 0.0008 encodings.utf_8:15(decode)
+862 0 0.0015 0.0015 +<_codecs.utf_8_decode>
4 0 0.0008 0.0008 <method 'close' of 'file' objects>
179 154 0.0202 0.0004 mercurial.demandimport:83(__getattribute__)
+36 11 0.0199 0.0003 +mercurial.demandimport:55(_load)
+72 0 0.0001 0.0001 +mercurial.demandimport:83(__getattribute__)
+36 0 0.0000 0.0000 +<getattr>
1 0 0.0015 0.0004 mercurial.tags:148(_readtagcache)
Time: real 0.060 secs (user 0.030+0.000 sys 0.010+0.000)
author | Brodie Rao <brodie@sf.io> |
---|---|
date | Sun, 13 May 2012 14:04:04 +0200 |
parents | 0705f2ac79d6 |
children | f2719b387380 |
rev | line source |
---|---|
10135
9a4034b630c4
patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff
changeset
|
1 |
12477
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
2 $ cat > writepatterns.py <<EOF |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
3 > import sys |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
4 > |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
5 > path = sys.argv[1] |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
6 > patterns = sys.argv[2:] |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
7 > |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
8 > fp = file(path, 'wb') |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
9 > for pattern in patterns: |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
10 > count = int(pattern[0:-1]) |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
11 > char = pattern[-1] + '\n' |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
12 > fp.write(char*count) |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
13 > fp.close() |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
14 > EOF |
10135
9a4034b630c4
patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff
changeset
|
15 |
12477
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
16 prepare repo |
10135
9a4034b630c4
patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff
changeset
|
17 |
12477
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
18 $ hg init a |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
19 $ cd a |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
20 |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
21 These initial lines of Xs were not in the original file used to generate |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
22 the patch. So all the patch hunks need to be applied to a constant offset |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
23 within this file. If the offset isn't tracked then the hunks can be |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
24 applied to the wrong lines of this file. |
10135
9a4034b630c4
patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff
changeset
|
25 |
12477
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
26 $ python ../writepatterns.py a 34X 10A 1B 10A 1C 10A 1B 10A 1D 10A 1B 10A 1E 10A 1B 10A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
27 $ hg commit -Am adda |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
28 adding a |
10135
9a4034b630c4
patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff
changeset
|
29 |
12477
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
30 This is a cleaner patch generated via diff |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
31 In this case it reproduces the problem when |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
32 the output of hg export does not |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
33 import patch |
10135
9a4034b630c4
patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff
changeset
|
34 |
12477
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
35 $ hg import -v -m 'b' -d '2 0' - <<EOF |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
36 > --- a/a 2009-12-08 19:26:17.000000000 -0800 |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
37 > +++ b/a 2009-12-08 19:26:17.000000000 -0800 |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
38 > @@ -9,7 +9,7 @@ |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
39 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
40 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
41 > B |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
42 > -A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
43 > +a |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
44 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
45 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
46 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
47 > @@ -53,7 +53,7 @@ |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
48 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
49 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
50 > B |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
51 > -A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
52 > +a |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
53 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
54 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
55 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
56 > @@ -75,7 +75,7 @@ |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
57 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
58 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
59 > B |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
60 > -A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
61 > +a |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
62 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
63 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
64 > A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
65 > EOF |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
66 applying patch from stdin |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
67 patching file a |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
68 Hunk #1 succeeded at 43 (offset 34 lines). |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
69 Hunk #2 succeeded at 87 (offset 34 lines). |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
70 Hunk #3 succeeded at 109 (offset 34 lines). |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
71 a |
15194
0705f2ac79d6
import: simplify status reporting logic (and make it more I18N-friendly)
Greg Ward <greg@gerg.ca>
parents:
12477
diff
changeset
|
72 created 189885cecb41 |
10135
9a4034b630c4
patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff
changeset
|
73 |
12477
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
74 compare imported changes against reference file |
10135
9a4034b630c4
patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff
changeset
|
75 |
12477
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
76 $ python ../writepatterns.py aref 34X 10A 1B 1a 9A 1C 10A 1B 10A 1D 10A 1B 1a 9A 1E 10A 1B 1a 9A |
e68cd3a90599
tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents:
10265
diff
changeset
|
77 $ diff aref a |