Mercurial > hg
annotate tests/test-rename-dir-merge.t @ 26135:edfb4d3b9672
hgweb: move some config options to requestcontext
Various config options from the repository were stored on the
hgweb instance. While unlikely, there could be race conditions between
a new request updating these values and an in-flight request seeing both
old and new values, leading to weird results.
We move some of options/attributes from hgweb to requestcontext.
As part of this, we establish config* helpers on requestcontext. As
part of the move, we changed int() casts to configint() calls. The
int() usage likely predates the existence of configint().
We also removed config option updating from once every refresh to every
request. I don't believe obtaining config options is expensive enough to
warrant only doing when the repository has changed.
The excessive use of object.__setattr__ is unfortunate. But it will
eventually disappear once the proxy is no longer necessary.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 22 Aug 2015 15:02:41 -0700 |
parents | bd625cd4e5e7 |
children | ef1eb6df7071 |
rev | line source |
---|---|
13956
ffb5c09ba822
tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents:
12114
diff
changeset
|
1 $ hg init t |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
2 $ cd t |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
3 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
4 $ mkdir a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
5 $ echo foo > a/a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
6 $ echo bar > a/b |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
7 $ hg ci -Am "0" |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
8 adding a/a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
9 adding a/b |
3733 | 10 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
11 $ hg co -C 0 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
12 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
13 $ hg mv a b |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
14 moving a/a to b/a (glob) |
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
15 moving a/b to b/b (glob) |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
16 $ hg ci -m "1 mv a/ b/" |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
17 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
18 $ hg co -C 0 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
19 2 files updated, 0 files merged, 2 files removed, 0 files unresolved |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
20 $ echo baz > a/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
21 $ echo quux > a/d |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
22 $ hg add a/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
23 $ hg ci -m "2 add a/c" |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
24 created new head |
3733 | 25 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
26 $ hg merge --debug 1 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
27 searching for copies back to rev 1 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
28 unmatched files in local: |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
29 a/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
30 unmatched files in other: |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
31 b/a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
32 b/b |
16795
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16094
diff
changeset
|
33 all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
18135
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
34 src: 'a/a' -> dst: 'b/a' |
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
35 src: 'a/b' -> dst: 'b/b' |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
36 checking for directory renames |
18135
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
37 discovered dir src: 'a/' -> dst: 'b/' |
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
38 pending file src: 'a/c' -> dst: 'b/c' |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
39 resolving manifests |
18605
bcf29565d89f
manifestmerge: pass in branchmerge and force separately
Siddharth Agarwal <sid0@fb.com>
parents:
18360
diff
changeset
|
40 branchmerge: True, force: False, partial: False |
15625
efdcce3fd2d5
merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents:
15447
diff
changeset
|
41 ancestor: f9b20c0d4c51, local: ce36d17b18fb+, remote: 397f8b00a740 |
18360
760c0d67ce5e
merge: process files in sorted order
Mads Kiilerich <mads@kiilerich.com>
parents:
18135
diff
changeset
|
42 a/a: other deleted -> r |
21391
cb15835456cb
merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents:
20944
diff
changeset
|
43 removing a/a |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
44 a/b: other deleted -> r |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
45 removing a/b |
21391
cb15835456cb
merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents:
20944
diff
changeset
|
46 b/a: remote created -> g |
18631
e2dc5397bc82
tests: update test output (will be folded into parent)
Bryan O'Sullivan <bryano@fb.com>
parents:
18605
diff
changeset
|
47 getting b/a |
21391
cb15835456cb
merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents:
20944
diff
changeset
|
48 b/b: remote created -> g |
18631
e2dc5397bc82
tests: update test output (will be folded into parent)
Bryan O'Sullivan <bryano@fb.com>
parents:
18605
diff
changeset
|
49 getting b/b |
21391
cb15835456cb
merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents:
20944
diff
changeset
|
50 b/c: remote directory rename - move from a/c -> dm |
19133
101b80eb7364
tests: check path separator in moves
Brendan Cully <brendan@kublai.com>
parents:
19095
diff
changeset
|
51 moving a/c to b/c (glob) |
16094
0776a6cababe
merge: don't use unknown()
Matt Mackall <mpm@selenic.com>
parents:
15625
diff
changeset
|
52 3 files updated, 0 files merged, 2 files removed, 0 files unresolved |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
53 (branch merge, don't forget to commit) |
3733 | 54 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
55 $ echo a/* b/* |
16094
0776a6cababe
merge: don't use unknown()
Matt Mackall <mpm@selenic.com>
parents:
15625
diff
changeset
|
56 a/d b/a b/b b/c |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
57 $ hg st -C |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
58 M b/a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
59 M b/b |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
60 A b/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
61 a/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
62 R a/a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
63 R a/b |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
64 R a/c |
16094
0776a6cababe
merge: don't use unknown()
Matt Mackall <mpm@selenic.com>
parents:
15625
diff
changeset
|
65 ? a/d |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
66 $ hg ci -m "3 merge 2+1" |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
67 $ hg debugrename b/c |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
68 b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 (glob) |
3733 | 69 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
70 $ hg co -C 1 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
71 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
72 $ hg merge --debug 2 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
73 searching for copies back to rev 1 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
74 unmatched files in local: |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
75 b/a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
76 b/b |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
77 unmatched files in other: |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
78 a/c |
16795
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16094
diff
changeset
|
79 all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
18135
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
80 src: 'a/a' -> dst: 'b/a' |
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
81 src: 'a/b' -> dst: 'b/b' |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
82 checking for directory renames |
18135
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
83 discovered dir src: 'a/' -> dst: 'b/' |
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
84 pending file src: 'a/c' -> dst: 'b/c' |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
85 resolving manifests |
18605
bcf29565d89f
manifestmerge: pass in branchmerge and force separately
Siddharth Agarwal <sid0@fb.com>
parents:
18360
diff
changeset
|
86 branchmerge: True, force: False, partial: False |
15625
efdcce3fd2d5
merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents:
15447
diff
changeset
|
87 ancestor: f9b20c0d4c51, local: 397f8b00a740+, remote: ce36d17b18fb |
20944
5b8d5803d7b7
merge: keep destination filename as key in actions for merge with dir rename
Mads Kiilerich <madski@unity3d.com>
parents:
19133
diff
changeset
|
88 b/c: local directory rename - get from a/c -> dg |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
89 getting a/c to b/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
90 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
91 (branch merge, don't forget to commit) |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
92 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
93 $ echo a/* b/* |
16094
0776a6cababe
merge: don't use unknown()
Matt Mackall <mpm@selenic.com>
parents:
15625
diff
changeset
|
94 a/d b/a b/b b/c |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
95 $ hg st -C |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
96 A b/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
97 a/c |
16094
0776a6cababe
merge: don't use unknown()
Matt Mackall <mpm@selenic.com>
parents:
15625
diff
changeset
|
98 ? a/d |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
99 $ hg ci -m "4 merge 1+2" |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
100 created new head |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
101 $ hg debugrename b/c |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
102 b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 (glob) |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
103 |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
104 Local directory rename with conflicting file added in remote source directory |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
105 and untracked in local target directory. |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
106 |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
107 $ hg co -qC 1 |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
108 $ echo target > b/c |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
109 $ hg merge 2 |
23653
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
110 b/c: untracked file differs |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
111 abort: untracked files in working directory differ from files in requested revision |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
112 [255] |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
113 $ cat b/c |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
114 target |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
115 but it should succeed if the content matches |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
116 $ hg cat -r 2 a/c > b/c |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
117 $ hg merge 2 |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
118 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
119 (branch merge, don't forget to commit) |
23653
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
120 $ hg st -C |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
121 A b/c |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
122 a/c |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
123 ? a/d |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
124 |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
125 Local directory rename with conflicting file added in remote source directory |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
126 and committed in local target directory. |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
127 |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
128 $ hg co -qC 1 |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
129 $ echo target > b/c |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
130 $ hg add b/c |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
131 $ hg commit -qm 'new file in target directory' |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
132 $ hg merge 2 |
23476
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
133 merging b/c and a/c to b/c |
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
134 warning: conflicts during merge. |
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
135 merging b/c incomplete! (edit conflicts, then use 'hg resolve --mark') |
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
136 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
137 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon |
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
138 [1] |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
139 $ hg st -A |
23476
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
140 M b/c |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
141 a/c |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
142 ? a/d |
23476
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
143 ? b/c.orig |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
144 C b/a |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
145 C b/b |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
146 $ cat b/c |
23476
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
147 <<<<<<< local: f1c50ca4f127 - test: new file in target directory |
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
148 target |
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
149 ======= |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
150 baz |
23476
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
151 >>>>>>> other: ce36d17b18fb - test: 2 add a/c |
39a12719ec65
merge: don't overwrite conflicting file in locally renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23475
diff
changeset
|
152 $ rm b/c.orig |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
153 |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
154 Remote directory rename with conflicting file added in remote target directory |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
155 and committed in local source directory. |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
156 |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
157 $ hg co -qC 2 |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
158 $ hg st -A |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
159 ? a/d |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
160 C a/a |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
161 C a/b |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
162 C a/c |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
163 $ hg merge 5 |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
164 merging a/c and b/c to b/c |
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
165 warning: conflicts during merge. |
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
166 merging b/c incomplete! (edit conflicts, then use 'hg resolve --mark') |
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
167 2 files updated, 0 files merged, 2 files removed, 1 files unresolved |
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
168 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon |
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
169 [1] |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
170 $ hg st -A |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
171 M b/a |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
172 M b/b |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
173 M b/c |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
174 a/c |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
175 R a/a |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
176 R a/b |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
177 R a/c |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
178 ? a/d |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
179 ? b/c.orig |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
180 $ cat b/c |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
181 <<<<<<< local: ce36d17b18fb - test: 2 add a/c |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
182 baz |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
183 ======= |
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
184 target |
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
185 >>>>>>> other: f1c50ca4f127 - test: new file in target directory |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
186 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
187 Second scenario with two repos: |
3733 | 188 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
189 $ cd .. |
13956
ffb5c09ba822
tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents:
12114
diff
changeset
|
190 $ hg init r1 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
191 $ cd r1 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
192 $ mkdir a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
193 $ echo foo > a/f |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
194 $ hg add a |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
195 adding a/f (glob) |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
196 $ hg ci -m "a/f == foo" |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
197 $ cd .. |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
198 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
199 $ hg clone r1 r2 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
200 updating to branch default |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
201 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
202 $ cd r2 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
203 $ hg mv a b |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
204 moving a/f to b/f (glob) |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
205 $ echo foo1 > b/f |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
206 $ hg ci -m" a -> b, b/f == foo1" |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
207 $ cd .. |
3733 | 208 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
209 $ cd r1 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
210 $ mkdir a/aa |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
211 $ echo bar > a/aa/g |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
212 $ hg add a/aa |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
213 adding a/aa/g (glob) |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
214 $ hg ci -m "a/aa/g" |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
215 $ hg pull ../r2 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
216 pulling from ../r2 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
217 searching for changes |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
218 adding changesets |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
219 adding manifests |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
220 adding file changes |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
221 added 1 changesets with 1 changes to 1 files (+1 heads) |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
222 (run 'hg heads' to see heads, 'hg merge' to merge) |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
223 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
224 $ hg merge |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
225 2 files updated, 0 files merged, 1 files removed, 0 files unresolved |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
226 (branch merge, don't forget to commit) |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
227 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
228 $ hg st -C |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
229 M b/f |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
230 A b/aa/g |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
231 a/aa/g |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
232 R a/aa/g |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
233 R a/f |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16795
diff
changeset
|
234 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16795
diff
changeset
|
235 $ cd .. |