annotate tests/test-rename-merge1.t @ 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 55c6ebd11cb9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
49621
55c6ebd11cb9 tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49252
diff changeset
1 $ hg init repo
55c6ebd11cb9 tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49252
diff changeset
2 $ cd repo
12298
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
3
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
4 $ echo "[merge]" >> .hg/hgrc
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
5 $ echo "followcopies = 1" >> .hg/hgrc
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
6
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
7 $ echo foo > a
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
8 $ echo foo > a2
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
9 $ hg add a a2
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
10 $ hg ci -m "start"
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
11
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
12 $ hg mv a b
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
13 $ hg mv a2 b2
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
14 $ hg ci -m "rename"
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
15
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
16 $ hg co 0
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
17 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
18
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
19 $ echo blahblah > a
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
20 $ echo blahblah > a2
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
21 $ hg mv a2 c2
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
22 $ hg ci -m "modify"
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
23 created new head
3153
c82ea81d6850 Add core copy detection algorithm
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
24
12298
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
25 $ hg merge -y --debug
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
26 unmatched files in local:
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
27 c2
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
28 unmatched files in other:
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
29 b
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
30 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
31 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
44197
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
32 on local side:
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
33 src: 'a2' -> dst: 'c2' !
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
34 on remote side:
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
35 src: 'a' -> dst: 'b' *
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
36 src: 'a2' -> dst: 'b2' !
12298
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
37 checking for directory renames
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
38 resolving manifests
18605
bcf29565d89f manifestmerge: pass in branchmerge and force separately
Siddharth Agarwal <sid0@fb.com>
parents: 18541
diff changeset
39 branchmerge: True, force: False, partial: False
15625
efdcce3fd2d5 merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents: 14182
diff changeset
40 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
41 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
42 b2
26957
d16d73173fdd merge: move messages about possible conflicts a litte earlier
Martin von Zweigbergk <martinvonz@google.com>
parents: 26618
diff changeset
43 c2
45488
c4f14db3da1d merge: move initial handling of mergeactions near to later one
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44237
diff changeset
44 b2: remote created -> g
c4f14db3da1d merge: move initial handling of mergeactions near to later one
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44237
diff changeset
45 getting b2
21391
cb15835456cb merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents: 21389
diff changeset
46 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
47 removing a
48427
38941a28406a mergestate: merge `preresolve()` into `resolve()`
Martin von Zweigbergk <martinvonz@google.com>
parents: 46072
diff changeset
48 b: remote moved from a -> m
27161
296d55def9c4 filemerge: add debug output for whether this is a change/delete conflict
Siddharth Agarwal <sid0@fb.com>
parents: 26957
diff changeset
49 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
50 merging a and b to b
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
51 my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
52 premerge successful
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
53 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
54 (branch merge, don't forget to commit)
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
55
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
56 $ hg status -AC
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
57 M b
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
58 a
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
59 M b2
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
60 R a
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
61 C c2
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 $ cat b
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
64 blahblah
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
65
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
66 $ hg ci -m "merge"
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
67
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 13537
diff changeset
68 $ hg debugindex b
49252
4141951dacff debugindex: rename the parent column to mention nodeid
Pierre-Yves DAVID <pierre-yves.david@octobus.net>
parents: 49251
diff changeset
69 rev linkrev nodeid p1-nodeid p2-nodeid
37283
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
70 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
71 1 3 4727ba907962 000000000000 57eacc201a7f
12298
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
72
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
73 $ hg debugrename b
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
74 b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66
f254204d8b8d tests: unify test-rename-merge1
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
75
12683
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
76 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
77
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
78 $ hg cp b b3
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
79 $ hg cp b b4
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
80 $ 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
81 $ hg up '.^'
12683
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
82 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
83 $ hg up
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
84 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
85 $ hg rm b3 b4
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
86 $ 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
87
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
88 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
89
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
90 $ hg cp b b3
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
91 $ hg mv b b4
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
92 $ 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
93 $ hg up '.^'
12683
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
94 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
95 $ hg up
ada47c38f4e5 copies: don't detect copies as "divergent renames"
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12298
diff changeset
96 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
97
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
98 Check for issue2642
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 $ hg init t
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
101 $ cd t
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 $ echo c0 > f1
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
104 $ hg ci -Aqm0
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
105
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
106 $ hg up null -q
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
107 $ echo c1 > f1 # backport
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
108 $ hg ci -Aqm1
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
109 $ hg mv f1 f2
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
110 $ hg ci -qm2
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
111
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
112 $ hg up 0 -q
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
113 $ 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
114 $ hg ci -qm3
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
115
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
116 $ hg merge 2
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
117 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
118 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
119 (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
120
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
121 $ cat f2
d100702326d5 context: generate file ancestors in reverse revision order (issue2642)
Matt Mackall <mpm@selenic.com>
parents: 12757
diff changeset
122 c0
13492
ca940d06bf95 tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 13468
diff changeset
123
16793
9cbc44a6600e tests: do not create repos inside repos in test-rename-merge1.t
Thomas Arendsen Hein <thomas@intevation.de>
parents: 16792
diff changeset
124 $ cd ..
9cbc44a6600e tests: do not create repos inside repos in test-rename-merge1.t
Thomas Arendsen Hein <thomas@intevation.de>
parents: 16792
diff changeset
125
13492
ca940d06bf95 tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 13468
diff changeset
126 Check for issue2089
ca940d06bf95 tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 13468
diff changeset
127
ca940d06bf95 tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 13468
diff changeset
128 $ hg init repo2089
ca940d06bf95 tests: test renaming a file added on two branches (issue2089)
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 13468
diff changeset
129 $ cd repo2089
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 $ echo c0 > f1
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
132 $ 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
133
13537
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
134 $ hg up null -q
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
135 $ echo c1 > f1
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
136 $ 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
137
13537
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
138 $ 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
139 $ 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
140 $ echo c2 > f1
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
141 $ 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
142
13537
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
143 $ hg up 1 -q
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
144 $ hg mv f1 f2
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
145 $ 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
146
13537
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
147 $ 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
148 $ hg merge 3
13537
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
149 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
150 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
151 (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
152
13537
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
153 $ cat f2
37f487b9fbcc test-rename-merge1: make it easier to review, windows friendly
Patrick Mezard <pmezard@gmail.com>
parents: 13492
diff changeset
154 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
155
9cbc44a6600e tests: do not create repos inside repos in test-rename-merge1.t
Thomas Arendsen Hein <thomas@intevation.de>
parents: 16792
diff changeset
156 $ 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
157
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 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
159
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 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
161 $ 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
162 $ 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
163 $ 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
164 $ 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
165 $ 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
166 $ 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
167 $ 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
168 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
169 $ 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
170 $ 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
171 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
172 $ 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
173 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
174 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
175 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
44197
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
176 on remote side:
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
177 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
178 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
179 resolving manifests
18605
bcf29565d89f manifestmerge: pass in branchmerge and force separately
Siddharth Agarwal <sid0@fb.com>
parents: 18541
diff changeset
180 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
181 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
182 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
183 newfile
21389
e741972017d9 merge: change priority / ordering of merge actions
Mads Kiilerich <madski@unity3d.com>
parents: 20945
diff changeset
184 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
185 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
186 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
187 (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
188 $ 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
189 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
190 $ cd ..
44161
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
191
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
192 Create x and y, then modify y and rename x to z on one side of merge, and
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
193 modify x and rename y to z on the other side.
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
194 $ hg init conflicting-target
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
195 $ cd conflicting-target
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
196 $ echo x > x
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
197 $ echo y > y
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
198 $ hg ci -Aqm 'add x and y'
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
199 $ hg mv x z
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
200 $ echo foo >> y
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
201 $ hg ci -qm 'modify y, rename x to z'
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
202 $ hg co -q 0
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
203 $ hg mv y z
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
204 $ echo foo >> x
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
205 $ hg ci -qm 'modify x, rename y to z'
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
206 # We should probably tell the user about the conflicting rename sources.
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
207 # Depending on which side they pick, we should take that rename and get
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
208 # the changes to the source from the other side. The unchanged file should
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
209 # remain.
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
210 $ hg merge --debug 1 -t :merge3
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
211 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
44197
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
212 on local side:
44237
b4057d001760 merge: when rename was made on both sides, use ancestor as merge base
Martin von Zweigbergk <martinvonz@google.com>
parents: 44197
diff changeset
213 src: 'y' -> dst: 'z' *
44197
17e12938f8e7 copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents: 44190
diff changeset
214 on remote side:
44237
b4057d001760 merge: when rename was made on both sides, use ancestor as merge base
Martin von Zweigbergk <martinvonz@google.com>
parents: 44197
diff changeset
215 src: 'x' -> dst: 'z' *
44161
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
216 checking for directory renames
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
217 resolving manifests
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
218 branchmerge: True, force: False, partial: False
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
219 ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508
46072
69429972ff1f tests: correct the output order about starting a background thread for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 45488
diff changeset
220 starting 4 threads for background file closing (?)
44161
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
221 preserving z for resolve of z
48427
38941a28406a mergestate: merge `preresolve()` into `resolve()`
Martin von Zweigbergk <martinvonz@google.com>
parents: 46072
diff changeset
222 z: both renamed from y -> m
44161
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
223 picked tool ':merge3' for z (binary False symlink False changedelete False)
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
224 merging z
44237
b4057d001760 merge: when rename was made on both sides, use ancestor as merge base
Martin von Zweigbergk <martinvonz@google.com>
parents: 44197
diff changeset
225 my z@07fcbc9a74ed+ other z@f21419739508 ancestor y@5151c134577e
b4057d001760 merge: when rename was made on both sides, use ancestor as merge base
Martin von Zweigbergk <martinvonz@google.com>
parents: 44197
diff changeset
226 premerge successful
b4057d001760 merge: when rename was made on both sides, use ancestor as merge base
Martin von Zweigbergk <martinvonz@google.com>
parents: 44197
diff changeset
227 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
b4057d001760 merge: when rename was made on both sides, use ancestor as merge base
Martin von Zweigbergk <martinvonz@google.com>
parents: 44197
diff changeset
228 (branch merge, don't forget to commit)
44161
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
229 $ ls
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
230 x
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
231 z
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
232 $ cat x
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
233 x
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
234 foo
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
235 # 'z' should have had the added 'foo' line
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
236 $ cat z
d7622fdec3b5 tests: test merge of renames of different sources to same target
Martin von Zweigbergk <martinvonz@google.com>
parents: 42590
diff changeset
237 x