Mercurial > hg
annotate tests/test-convert-cvs-detectmerge.t @ 44118:f81c17ec303c
hgdemandimport: apply lazy module loading to sys.meta_path finders
Python's `sys.meta_path` finders are the primary objects whose job it
is to find a module at import time. When `import` is called, Python
iterates objects in this list and calls `o.find_spec(...)` to find
a `ModuleSpec` (or None if the module couldn't be found by that
finder). If no meta path finder can find a module, import fails.
One of the default meta path finders is `PathFinder`. Its job is to
import modules from the filesystem and is probably the most important
importer. This finder looks at `sys.path` and `sys.path_hooks` to do
its job.
The `ModuleSpec` returned by `MetaPathImporter.find_spec()` has a
`loader` attribute, which defines the concrete module loader to use.
`sys.path_hooks` is a hook point for teaching `PathFinder` to
instantiate custom loader types.
Previously, we injected a custom `sys.path_hook` that told `PathFinder`
to wrap the default loaders with a loader that creates a module object
that is lazy.
This approach worked. But its main limitation was that it only applied
to the `PathFinder` meta path importer. There are other meta path
importers that are registered. And in the case of PyOxidizer loading
modules from memory, `PathFinder` doesn't come into play since
PyOxidizer's own meta path importer was handling all imports.
This commit changes our approach to lazy module loading by proxying
all meta path importers. Specifically, we overload the `find_spec()`
method to swap in a wrapped loader on the `ModuleSpec` before it
is returned. The end result of this is all meta path importers should
be lazy.
As much as I would have loved to utilize .__class__ manipulation to
achieve this, some meta path importers are implemented in C/Rust
in such a way that they cannot be monkeypatched. This is why we
use __getattribute__ to define a proxy.
Also, this change could theoretically open us up to regressions in
meta path importers whose loader is creating module objects which
can't be monkeypatched. But I'm not aware of any of these in the
wild. So I think we'll be safe.
According to hyperfine, this change yields a decent startup time win of
5-6ms:
```
Benchmark #1: ~/.pyenv/versions/3.6.10/bin/python ./hg version
Time (mean ± σ): 86.8 ms ± 0.5 ms [User: 78.0 ms, System: 8.7 ms]
Range (min … max): 86.0 ms … 89.1 ms 50 runs
Time (mean ± σ): 81.1 ms ± 2.7 ms [User: 74.5 ms, System: 6.5 ms]
Range (min … max): 77.8 ms … 90.5 ms 50 runs
Benchmark #2: ~/.pyenv/versions/3.7.6/bin/python ./hg version
Time (mean ± σ): 78.9 ms ± 0.6 ms [User: 70.2 ms, System: 8.7 ms]
Range (min … max): 78.1 ms … 81.2 ms 50 runs
Time (mean ± σ): 73.4 ms ± 0.6 ms [User: 65.3 ms, System: 8.0 ms]
Range (min … max): 72.4 ms … 75.7 ms 50 runs
Benchmark #3: ~/.pyenv/versions/3.8.1/bin/python ./hg version
Time (mean ± σ): 78.1 ms ± 0.6 ms [User: 70.2 ms, System: 7.9 ms]
Range (min … max): 77.4 ms … 80.9 ms 50 runs
Time (mean ± σ): 72.1 ms ± 0.4 ms [User: 64.4 ms, System: 7.6 ms]
Range (min … max): 71.4 ms … 74.1 ms 50 runs
```
Differential Revision: https://phab.mercurial-scm.org/D7954
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 20 Jan 2020 23:51:25 -0800 |
parents | 96529f81e2e9 |
children | e5e5ee2b60e4 |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20117
diff
changeset
|
1 #require cvs |
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20117
diff
changeset
|
2 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
3 Test config convert.cvsps.mergefrom config setting. |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
4 (Should test similar mergeto feature, but I don't understand it yet.) |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
5 Requires builtin cvsps. |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
6 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
7 $ CVSROOT=`pwd`/cvsrepo |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
8 $ export CVSROOT |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
9 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
10 $ cvscall() |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
11 > { |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
12 > cvs -f "$@" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
13 > } |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
14 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
15 output of 'cvs ci' varies unpredictably, so just discard it |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
16 XXX copied from test-convert-cvs-synthetic |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
17 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
18 $ cvsci() |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
19 > { |
14569
017ab404e588
tests: fix up date ambiguity in cvs test
Matt Mackall <mpm@selenic.com>
parents:
12640
diff
changeset
|
20 > sleep 1 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
21 > cvs -f ci "$@" > /dev/null |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
22 > } |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
23 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
24 XXX copied from test-convert-cvs-synthetic |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
25 |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
26 $ cat <<EOF >> $HGRCPATH |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
27 > [extensions] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
28 > convert = |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
29 > [convert] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
30 > cvsps.cache = 0 |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
31 > cvsps.mergefrom = \[MERGE from (\S+)\] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
32 > EOF |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
33 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
34 create cvs repository with one project |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
35 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
36 $ cvscall -q -d "$CVSROOT" init |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
37 $ mkdir cvsrepo/proj |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
38 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
39 populate cvs repository |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
40 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
41 $ cvscall -Q co proj |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
42 $ cd proj |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
43 $ touch file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
44 $ cvscall -Q add file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
45 $ cvsci -m"add file1 on trunk" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
46 cvs commit: Examining . |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
47 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
48 create two release branches |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
49 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
50 $ cvscall -q tag -b v1_0 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
51 T file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
52 $ cvscall -q tag -b v1_1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
53 T file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
54 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
55 modify file1 on branch v1_0 |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
56 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
57 $ cvscall -Q update -rv1_0 |
14824
7698c275aa56
tests: restore previous fix for date ambiguity in cvs test
Mads Kiilerich <mads@kiilerich.com>
parents:
14569
diff
changeset
|
58 $ sleep 1 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
59 $ echo "change" >> file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
60 $ cvsci -m"add text" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
61 cvs commit: Examining . |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
62 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
63 make unrelated change on v1_1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
64 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
65 $ cvscall -Q update -rv1_1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
66 $ touch unrelated |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
67 $ cvscall -Q add unrelated |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
68 $ cvsci -m"unrelated change" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
69 cvs commit: Examining . |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
70 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
71 merge file1 to v1_1 |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
72 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
73 $ cvscall -Q update -jv1_0 |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12585
diff
changeset
|
74 RCS file: $TESTTMP/cvsrepo/proj/file1,v |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
75 retrieving revision 1.1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
76 retrieving revision 1.1.2.1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
77 Merging differences between 1.1 and 1.1.2.1 into file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
78 $ cvsci -m"add text [MERGE from v1_0]" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
79 cvs commit: Examining . |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
80 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
81 merge change to trunk |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
82 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
83 $ cvscall -Q update -A |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
84 $ cvscall -Q update -jv1_1 |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12585
diff
changeset
|
85 RCS file: $TESTTMP/cvsrepo/proj/file1,v |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
86 retrieving revision 1.1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
87 retrieving revision 1.1.4.1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
88 Merging differences between 1.1 and 1.1.4.1 into file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
89 $ cvsci -m"add text [MERGE from v1_1]" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
90 cvs commit: Examining . |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
91 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
92 non-merged change on trunk |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
93 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
94 $ echo "foo" > file2 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
95 $ cvscall -Q add file2 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
96 $ cvsci -m"add file2 on trunk" file2 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
97 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
98 this will create rev 1.3 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
99 change on trunk to backport |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
100 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
101 $ echo "backport me" >> file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
102 $ cvsci -m"add other text" file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
103 $ cvscall log file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
104 |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12585
diff
changeset
|
105 RCS file: $TESTTMP/cvsrepo/proj/file1,v |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
106 Working file: file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
107 head: 1.3 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
108 branch: |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
109 locks: strict |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
110 access list: |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
111 symbolic names: |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
112 v1_1: 1.1.0.4 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
113 v1_0: 1.1.0.2 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
114 keyword substitution: kv |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
115 total revisions: 5; selected revisions: 5 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
116 description: |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
117 ---------------------------- |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
118 revision 1.3 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
119 date: * (glob) |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
120 add other text |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
121 ---------------------------- |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
122 revision 1.2 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
123 date: * (glob) |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
124 add text [MERGE from v1_1] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
125 ---------------------------- |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
126 revision 1.1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
127 date: * (glob) |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
128 branches: 1.1.2; 1.1.4; |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
129 add file1 on trunk |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
130 ---------------------------- |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
131 revision 1.1.4.1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
132 date: * (glob) |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
133 add text [MERGE from v1_0] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
134 ---------------------------- |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
135 revision 1.1.2.1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
136 date: * (glob) |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
137 add text |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
138 ============================================================================= |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
139 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
140 XXX how many ways are there to spell "trunk" with CVS? |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
141 backport trunk change to v1_1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
142 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
143 $ cvscall -Q update -rv1_1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
144 $ cvscall -Q update -j1.2 -j1.3 file1 |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12585
diff
changeset
|
145 RCS file: $TESTTMP/cvsrepo/proj/file1,v |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
146 retrieving revision 1.2 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
147 retrieving revision 1.3 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
148 Merging differences between 1.2 and 1.3 into file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
149 $ cvsci -m"add other text [MERGE from HEAD]" file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
150 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
151 fix bug on v1_1, merge to trunk with error |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
152 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
153 $ cvscall -Q update -rv1_1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
154 $ echo "merge forward" >> file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
155 $ cvscall -Q tag unmerged |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
156 $ cvsci -m"fix file1" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
157 cvs commit: Examining . |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
158 $ cvscall -Q update -A |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
159 $ cvscall -Q update -junmerged -jv1_1 |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12585
diff
changeset
|
160 RCS file: $TESTTMP/cvsrepo/proj/file1,v |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
161 retrieving revision 1.1.4.2 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
162 retrieving revision 1.1.4.3 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
163 Merging differences between 1.1.4.2 and 1.1.4.3 into file1 |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
164 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
165 note the typo in the commit log message |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
166 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
167 $ cvsci -m"fix file1 [MERGE from v1-1]" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
168 cvs commit: Examining . |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
169 $ cvs -Q tag -d unmerged |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
170 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
171 convert to hg |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
172 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
173 $ cd .. |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
174 $ hg convert proj proj.hg |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
175 initializing destination proj.hg repository |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12585
diff
changeset
|
176 connecting to $TESTTMP/cvsrepo |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
177 scanning source... |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
178 collecting CVS rlog |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
179 12 log entries |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
180 creating changesets |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
181 warning: CVS commit message references non-existent branch 'v1-1': |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
182 fix file1 [MERGE from v1-1] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
183 10 changeset entries |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
184 sorting... |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
185 converting... |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
186 9 add file1 on trunk |
18376
13d73bf6be29
convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents:
14824
diff
changeset
|
187 8 unrelated change |
13d73bf6be29
convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents:
14824
diff
changeset
|
188 7 add text |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
189 6 add text [MERGE from v1_0] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
190 5 add text [MERGE from v1_1] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
191 4 add file2 on trunk |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
192 3 add other text |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
193 2 add other text [MERGE from HEAD] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
194 1 fix file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
195 0 fix file1 [MERGE from v1-1] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
196 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
197 complete log |
8170
6c4fdde87f90
cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
198 |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
199 $ template="{rev}: '{branches}' {desc}\n" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
200 $ hg -R proj.hg log --template="$template" |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
201 9: '' fix file1 [MERGE from v1-1] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
202 8: 'v1_1' fix file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
203 7: 'v1_1' add other text [MERGE from HEAD] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
204 6: '' add other text |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
205 5: '' add file2 on trunk |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
206 4: '' add text [MERGE from v1_1] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
207 3: 'v1_1' add text [MERGE from v1_0] |
18376
13d73bf6be29
convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents:
14824
diff
changeset
|
208 2: 'v1_0' add text |
13d73bf6be29
convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents:
14824
diff
changeset
|
209 1: 'v1_1' unrelated change |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
210 0: '' add file1 on trunk |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
211 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
212 graphical log |
8171
4e5bd9b97bb3
cvsps: fix crash when log message refers to non-existent branch (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
8170
diff
changeset
|
213 |
20117
aa9385f983fa
tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents:
18376
diff
changeset
|
214 $ hg -R proj.hg log -G --template="$template" |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
215 o 9: '' fix file1 [MERGE from v1-1] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
216 | |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
217 | o 8: 'v1_1' fix file1 |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
218 | | |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
219 | o 7: 'v1_1' add other text [MERGE from HEAD] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
220 |/| |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
221 o | 6: '' add other text |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
222 | | |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
223 o | 5: '' add file2 on trunk |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
224 | | |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
225 o | 4: '' add text [MERGE from v1_1] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
226 |\| |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
227 | o 3: 'v1_1' add text [MERGE from v1_0] |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
228 | |\ |
18376
13d73bf6be29
convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents:
14824
diff
changeset
|
229 +---o 2: 'v1_0' add text |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
230 | | |
18376
13d73bf6be29
convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents:
14824
diff
changeset
|
231 | o 1: 'v1_1' unrelated change |
12521
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
232 |/ |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
233 o 0: '' add file1 on trunk |
539480ce1c89
tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents:
9543
diff
changeset
|
234 |