Mercurial > hg
annotate tests/test-rename-merge1.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 | ab416b5d9b91 |
children | d7622fdec3b5 |
rev | line source |
---|---|
12298
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
1 $ hg init |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
3 $ echo "[merge]" >> .hg/hgrc |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
4 $ echo "followcopies = 1" >> .hg/hgrc |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
5 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
6 $ echo foo > a |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
7 $ echo foo > a2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
8 $ hg add a a2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
9 $ hg ci -m "start" |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
10 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
11 $ hg mv a b |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
12 $ hg mv a2 b2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
13 $ hg ci -m "rename" |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
14 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
15 $ hg co 0 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
16 2 files updated, 0 files merged, 2 files removed, 0 files unresolved |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
17 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
18 $ echo blahblah > a |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
19 $ echo blahblah > a2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
20 $ hg mv a2 c2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
21 $ hg ci -m "modify" |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
22 created new head |
3153
c82ea81d6850
Add core copy detection algorithm
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
23 |
12298
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
24 $ hg merge -y --debug |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
25 unmatched files in local: |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
26 c2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
27 unmatched files in other: |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
28 b |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
29 b2 |
16795
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16794
diff
changeset
|
30 all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
18135
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
17132
diff
changeset
|
31 src: 'a' -> dst: 'b' * |
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
17132
diff
changeset
|
32 src: 'a2' -> dst: 'b2' ! |
18362
5a4f220fbfca
copies: report found copies sorted
Mads Kiilerich <mads@kiilerich.com>
parents:
18135
diff
changeset
|
33 src: 'a2' -> dst: 'c2' ! |
12298
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
34 checking for directory renames |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
35 resolving manifests |
18605
bcf29565d89f
manifestmerge: pass in branchmerge and force separately
Siddharth Agarwal <sid0@fb.com>
parents:
18541
diff
changeset
|
36 branchmerge: True, force: False, partial: False |
15625
efdcce3fd2d5
merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents:
14182
diff
changeset
|
37 ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c |
26957
d16d73173fdd
merge: move messages about possible conflicts a litte earlier
Martin von Zweigbergk <martinvonz@google.com>
parents:
26618
diff
changeset
|
38 note: possible conflict - a2 was renamed multiple times to: |
42110
3a7efcbdf288
copies: print list of divergent renames in sorted order
Martin von Zweigbergk <martinvonz@google.com>
parents:
37283
diff
changeset
|
39 b2 |
26957
d16d73173fdd
merge: move messages about possible conflicts a litte earlier
Martin von Zweigbergk <martinvonz@google.com>
parents:
26618
diff
changeset
|
40 c2 |
21391
cb15835456cb
merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents:
21389
diff
changeset
|
41 preserving a for resolve of b |
cb15835456cb
merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents:
21389
diff
changeset
|
42 removing a |
21389
e741972017d9
merge: change priority / ordering of merge actions
Mads Kiilerich <madski@unity3d.com>
parents:
20945
diff
changeset
|
43 b2: remote created -> g |
18631
e2dc5397bc82
tests: update test output (will be folded into parent)
Bryan O'Sullivan <bryano@fb.com>
parents:
18605
diff
changeset
|
44 getting b2 |
26618
8e6d5b7317e6
merge.mergestate: perform all premerges before any merges (BC)
Siddharth Agarwal <sid0@fb.com>
parents:
26517
diff
changeset
|
45 b: remote moved from a -> m (premerge) |
27161
296d55def9c4
filemerge: add debug output for whether this is a change/delete conflict
Siddharth Agarwal <sid0@fb.com>
parents:
26957
diff
changeset
|
46 picked tool ':merge' for b (binary False symlink False changedelete False) |
12298
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
47 merging a and b to b |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
48 my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
49 premerge successful |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
50 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
51 (branch merge, don't forget to commit) |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
52 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
53 $ hg status -AC |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
54 M b |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
55 a |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
56 M b2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
57 R a |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
58 C c2 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
59 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
60 $ cat b |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
61 blahblah |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
62 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
63 $ hg ci -m "merge" |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
64 |
14182
ec5886db9dc6
tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents:
13537
diff
changeset
|
65 $ hg debugindex b |
37283
d4e62df1c73d
debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37282
diff
changeset
|
66 rev linkrev nodeid p1 p2 |
d4e62df1c73d
debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37282
diff
changeset
|
67 0 1 57eacc201a7f 000000000000 000000000000 |
d4e62df1c73d
debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37282
diff
changeset
|
68 1 3 4727ba907962 000000000000 57eacc201a7f |
12298
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
69 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
70 $ hg debugrename b |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
71 b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66 |
f254204d8b8d
tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents:
8167
diff
changeset
|
72 |
12683
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
73 This used to trigger a "divergent renames" warning, despite no renames |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
74 |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
75 $ hg cp b b3 |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
76 $ hg cp b b4 |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
77 $ hg ci -A -m 'copy b twice' |
42182
fad480dad04d
tests: avoid cryptic nodeids in tests/test-rename-merge1.t
Martin von Zweigbergk <martinvonz@google.com>
parents:
42167
diff
changeset
|
78 $ hg up '.^' |
12683
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
79 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
80 $ hg up |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
81 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
82 $ hg rm b3 b4 |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
83 $ hg ci -m 'clean up a bit of our mess' |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
84 |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
85 We'd rather not warn on divergent renames done in the same changeset (issue2113) |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
86 |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
87 $ hg cp b b3 |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
88 $ hg mv b b4 |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
89 $ hg ci -A -m 'divergent renames in same changeset' |
42182
fad480dad04d
tests: avoid cryptic nodeids in tests/test-rename-merge1.t
Martin von Zweigbergk <martinvonz@google.com>
parents:
42167
diff
changeset
|
90 $ hg up '.^' |
12683
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
91 1 files updated, 0 files merged, 2 files removed, 0 files unresolved |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
92 $ hg up |
ada47c38f4e5
copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
12298
diff
changeset
|
93 2 files updated, 0 files merged, 1 files removed, 0 files unresolved |
13468
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
94 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
95 Check for issue2642 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
96 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
97 $ hg init t |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
98 $ cd t |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
99 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
100 $ echo c0 > f1 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
101 $ hg ci -Aqm0 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
102 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
103 $ hg up null -q |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
104 $ echo c1 > f1 # backport |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
105 $ hg ci -Aqm1 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
106 $ hg mv f1 f2 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
107 $ hg ci -qm2 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
108 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
109 $ hg up 0 -q |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
110 $ hg merge 1 -q --tool internal:local |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
111 $ hg ci -qm3 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
112 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
113 $ hg merge 2 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
114 merging f1 and f2 to f2 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
115 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
116 (branch merge, don't forget to commit) |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
117 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
118 $ cat f2 |
d100702326d5
context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents:
12757
diff
changeset
|
119 c0 |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
120 |
16793
9cbc44a6600e
tests: do not create repos inside repos in test-rename-merge1.t
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16792
diff
changeset
|
121 $ cd .. |
9cbc44a6600e
tests: do not create repos inside repos in test-rename-merge1.t
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16792
diff
changeset
|
122 |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
123 Check for issue2089 |
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
124 |
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
125 $ hg init repo2089 |
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
126 $ cd repo2089 |
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
127 |
13537
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
128 $ echo c0 > f1 |
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
129 $ hg ci -Aqm0 |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
130 |
13537
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
131 $ hg up null -q |
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
132 $ echo c1 > f1 |
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
133 $ hg ci -Aqm1 |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
134 |
13537
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
135 $ hg up 0 -q |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
136 $ hg merge 1 -q --tool internal:local |
13537
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
137 $ echo c2 > f1 |
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
138 $ hg ci -qm2 |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
139 |
13537
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
140 $ hg up 1 -q |
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
141 $ hg mv f1 f2 |
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
142 $ hg ci -Aqm3 |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
143 |
13537
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
144 $ hg up 2 -q |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
145 $ hg merge 3 |
13537
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
146 merging f1 and f2 to f2 |
13492
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
147 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
148 (branch merge, don't forget to commit) |
ca940d06bf95
tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
13468
diff
changeset
|
149 |
13537
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
150 $ cat f2 |
37f487b9fbcc
test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents:
13492
diff
changeset
|
151 c2 |
16793
9cbc44a6600e
tests: do not create repos inside repos in test-rename-merge1.t
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16792
diff
changeset
|
152 |
9cbc44a6600e
tests: do not create repos inside repos in test-rename-merge1.t
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16792
diff
changeset
|
153 $ cd .. |
16794
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
154 |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
155 Check for issue3074 |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
156 |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
157 $ hg init repo3074 |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
158 $ cd repo3074 |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
159 $ echo foo > file |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
160 $ hg add file |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
161 $ hg commit -m "added file" |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
162 $ hg mv file newfile |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
163 $ hg commit -m "renamed file" |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
164 $ hg update 0 |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
165 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
166 $ hg rm file |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
167 $ hg commit -m "deleted file" |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
168 created new head |
16795
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16794
diff
changeset
|
169 $ hg merge --debug |
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16794
diff
changeset
|
170 unmatched files in other: |
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16794
diff
changeset
|
171 newfile |
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16794
diff
changeset
|
172 all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
18135
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
17132
diff
changeset
|
173 src: 'file' -> dst: 'newfile' % |
16795
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16794
diff
changeset
|
174 checking for directory renames |
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16794
diff
changeset
|
175 resolving manifests |
18605
bcf29565d89f
manifestmerge: pass in branchmerge and force separately
Siddharth Agarwal <sid0@fb.com>
parents:
18541
diff
changeset
|
176 branchmerge: True, force: False, partial: False |
16795
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16794
diff
changeset
|
177 ancestor: 19d7f95df299, local: 0084274f6b67+, remote: 5d32493049f0 |
26957
d16d73173fdd
merge: move messages about possible conflicts a litte earlier
Martin von Zweigbergk <martinvonz@google.com>
parents:
26618
diff
changeset
|
178 note: possible conflict - file was deleted and renamed to: |
d16d73173fdd
merge: move messages about possible conflicts a litte earlier
Martin von Zweigbergk <martinvonz@google.com>
parents:
26618
diff
changeset
|
179 newfile |
21389
e741972017d9
merge: change priority / ordering of merge actions
Mads Kiilerich <madski@unity3d.com>
parents:
20945
diff
changeset
|
180 newfile: remote created -> g |
18631
e2dc5397bc82
tests: update test output (will be folded into parent)
Bryan O'Sullivan <bryano@fb.com>
parents:
18605
diff
changeset
|
181 getting newfile |
16794
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
182 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
183 (branch merge, don't forget to commit) |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
184 $ hg status |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
185 M newfile |
98687cdddcb1
merge: warn about file deleted in one branch and renamed in other (issue3074)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16793
diff
changeset
|
186 $ cd .. |