Mercurial > hg
annotate tests/test-rename-dir-merge.t @ 48202:9006eafa0942
chistedit: move layout() and dependencies onto state class
Differential Revision: https://phab.mercurial-scm.org/D11638
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 11 Oct 2021 23:02:49 -0700 |
parents | ad30b29bc23d |
children | b7fde9237c92 |
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 |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
14 moving a/a to b/a |
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
15 moving a/b to b/b |
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 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
|
28 a/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
29 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
|
30 b/a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
31 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
|
32 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:
42167
diff
changeset
|
33 on remote side: |
17e12938f8e7
copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents:
42167
diff
changeset
|
34 src: 'a/a' -> dst: 'b/a' |
17e12938f8e7
copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents:
42167
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 |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
51 moving a/c to b/c |
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 |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
68 b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 |
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 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
|
74 b/a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
75 b/b |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
76 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
|
77 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
|
78 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:
42167
diff
changeset
|
79 on local side: |
17e12938f8e7
copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents:
42167
diff
changeset
|
80 src: 'a/a' -> dst: 'b/a' |
17e12938f8e7
copies: print debug information about copies per side/branch
Martin von Zweigbergk <martinvonz@google.com>
parents:
42167
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 |
28318
564a354f7f35
tests: flag Windows specific lines about background closing as optional
Matt Harbison <matt_harbison@yahoo.com>
parents:
27876
diff
changeset
|
88 starting 4 threads for background file closing (?) |
20944
5b8d5803d7b7
merge: keep destination filename as key in actions for merge with dir rename
Mads Kiilerich <madski@unity3d.com>
parents:
19133
diff
changeset
|
89 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
|
90 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
|
91 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
|
92 (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
|
93 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
94 $ echo a/* b/* |
16094
0776a6cababe
merge: don't use unknown()
Matt Mackall <mpm@selenic.com>
parents:
15625
diff
changeset
|
95 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
|
96 $ hg st -C |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
97 A b/c |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
98 a/c |
16094
0776a6cababe
merge: don't use unknown()
Matt Mackall <mpm@selenic.com>
parents:
15625
diff
changeset
|
99 ? a/d |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
100 $ 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
|
101 created new head |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
102 $ hg debugrename b/c |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
103 b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
104 |
23444
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
105 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
|
106 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
|
107 |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
108 $ 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
|
109 $ 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
|
110 $ 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
|
111 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
|
112 abort: untracked files in working directory differ from files in requested revision |
46418
dc00324e80f4
errors: use StateError more in merge module
Martin von Zweigbergk <martinvonz@google.com>
parents:
44197
diff
changeset
|
113 [20] |
23653
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
114 $ cat b/c |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
115 target |
0297d8469350
merge: don't overwrite untracked file at directory rename target
Martin von Zweigbergk <martinvonz@google.com>
parents:
23476
diff
changeset
|
116 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
|
117 $ 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
|
118 $ 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
|
119 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
|
120 (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
|
121 $ 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
|
122 A b/c |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
123 a/c |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
124 ? a/d |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
125 |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
126 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
|
127 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
|
128 |
88629daa727b
merge: demonstrate that directory renames can lose local file content
Martin von Zweigbergk <martinvonz@google.com>
parents:
21391
diff
changeset
|
129 $ 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
|
130 $ 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
|
131 $ 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
|
132 $ 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
|
133 $ 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
|
134 merging b/c and a/c to b/c |
26614
ef1eb6df7071
simplemerge: move conflict warning message to filemerge
Siddharth Agarwal <sid0@fb.com>
parents:
25125
diff
changeset
|
135 warning: conflicts while merging b/c! (edit, then use 'hg resolve --mark') |
23476
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 |
35704
41ef02ba329b
merge: add `--abort` flag which can abort the merge
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35393
diff
changeset
|
137 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon |
23476
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 |
30062
940c05b25b07
merge: add conflict labels to merge command
Simon Farnsworth <simonfar@fb.com>
parents:
28318
diff
changeset
|
147 <<<<<<< working copy: f1c50ca4f127 - test: new file in target directory |
23476
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 |
30460
ce3a133f71b3
conflicts: make spacing consistent in conflict markers
Kostia Balytskyi <ikostia@fb.com>
parents:
30062
diff
changeset
|
151 >>>>>>> merge rev: ce36d17b18fb - test: 2 add a/c |
23476
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 |
26614
ef1eb6df7071
simplemerge: move conflict warning message to filemerge
Siddharth Agarwal <sid0@fb.com>
parents:
25125
diff
changeset
|
165 warning: conflicts while merging b/c! (edit, then use 'hg resolve --mark') |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
166 2 files updated, 0 files merged, 2 files removed, 1 files unresolved |
35704
41ef02ba329b
merge: add `--abort` flag which can abort the merge
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35393
diff
changeset
|
167 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
168 [1] |
23464
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
169 $ hg st -A |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
170 M b/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/b |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
172 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
|
173 a/c |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
174 R a/a |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
175 R a/b |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
176 R a/c |
73d4f6551798
merge: add test with conflicting file and remote directory rename
Martin von Zweigbergk <martinvonz@google.com>
parents:
23444
diff
changeset
|
177 ? a/d |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
178 ? 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
|
179 $ cat b/c |
30460
ce3a133f71b3
conflicts: make spacing consistent in conflict markers
Kostia Balytskyi <ikostia@fb.com>
parents:
30062
diff
changeset
|
180 <<<<<<< working copy: 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
|
181 baz |
23475
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
182 ======= |
67f1d68861fb
merge: don't ignore conflicting file in remote renamed directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
23464
diff
changeset
|
183 target |
30062
940c05b25b07
merge: add conflict labels to merge command
Simon Farnsworth <simonfar@fb.com>
parents:
28318
diff
changeset
|
184 >>>>>>> merge rev: 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
|
185 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
186 Second scenario with two repos: |
3733 | 187 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
188 $ cd .. |
13956
ffb5c09ba822
tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents:
12114
diff
changeset
|
189 $ 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
|
190 $ cd r1 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
191 $ mkdir a |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
192 $ 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
|
193 $ hg add a |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
194 adding a/f |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
195 $ 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
|
196 $ cd .. |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
197 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
198 $ 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
|
199 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
|
200 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
|
201 $ cd r2 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
202 $ hg mv a b |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
203 moving a/f to b/f |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
204 $ 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
|
205 $ 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
|
206 $ cd .. |
3733 | 207 |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
208 $ cd r1 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
209 $ mkdir a/aa |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
210 $ 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
|
211 $ hg add a/aa |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
212 adding a/aa/g |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
213 $ 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
|
214 $ hg pull ../r2 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
215 pulling from ../r2 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
216 searching for changes |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
217 adding changesets |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
218 adding manifests |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
219 adding file changes |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
220 added 1 changesets with 1 changes to 1 files (+1 heads) |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
30460
diff
changeset
|
221 new changesets 7d51ed18da25 |
38250
d0abd7949ea3
phases: use "published" in the phase movement message
Boris Feld <boris.feld@octobus.net>
parents:
38249
diff
changeset
|
222 1 local changesets published |
12114
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
223 (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
|
224 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
225 $ hg merge |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
226 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
|
227 (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
|
228 |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
229 $ hg st -C |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
230 M b/f |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
231 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
|
232 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/aa/g |
0a6b2e21bc86
tests: merge the two test-rename-dir-merge* into one
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8167
diff
changeset
|
234 R a/f |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16795
diff
changeset
|
235 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16795
diff
changeset
|
236 $ cd .. |
27876
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
237 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
238 Test renames to separate directories |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
239 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
240 $ hg init a |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
241 $ cd a |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
242 $ mkdir a |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
243 $ touch a/s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
244 $ touch a/t |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
245 $ hg ci -Am0 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
246 adding a/s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
247 adding a/t |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
248 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
249 Add more files |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
250 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
251 $ touch a/s2 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
252 $ touch a/t2 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
253 $ hg ci -Am1 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
254 adding a/s2 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
255 adding a/t2 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
256 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
257 Do moves on a branch |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
258 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
259 $ hg up 0 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
260 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
261 $ mkdir s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
262 $ mkdir t |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
263 $ hg mv a/s s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
264 $ hg mv a/t t |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
265 $ hg ci -Am2 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
266 created new head |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
267 $ hg st --copies --change . |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
268 A s/s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
269 a/s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
270 A t/t |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
271 a/t |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
272 R a/s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
273 R a/t |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
274 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
275 Merge shouldn't move s2, t2 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
276 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
277 $ hg merge |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
278 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
279 (branch merge, don't forget to commit) |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
280 $ hg st --copies |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
281 M a/s2 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
282 M a/t2 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
283 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
284 Try the merge in the other direction. It may or may not be appropriate for |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
285 status to list copies here. |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
286 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
287 $ hg up -C 1 |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
288 4 files updated, 0 files merged, 2 files removed, 0 files unresolved |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
289 $ hg merge |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
290 2 files updated, 0 files merged, 2 files removed, 0 files unresolved |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
291 (branch merge, don't forget to commit) |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
292 $ hg st --copies |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
293 M s/s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
294 M t/t |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
295 R a/s |
602add6ad9e5
copies: fix detection of divergent directory renames
Matt Mackall <mpm@selenic.com>
parents:
26614
diff
changeset
|
296 R a/t |
46634
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
297 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
298 $ cd .. |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
299 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
300 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
301 Test that files are moved to a new directory based on the path prefix that |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
302 matches the most. dir1/ below gets renamed to dir2/, and dir1/subdir1/ gets |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
303 renamed to dir2/subdir2/. We want dir1/subdir1/newfile to move to |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
304 dir2/subdir2/ (not to dir2/subdir1/ as we would infer based on just the rename |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
305 of dir1/ to dir2/). |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
306 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
307 $ hg init nested-renames |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
308 $ cd nested-renames |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
309 $ mkdir dir1 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
310 $ echo a > dir1/file1 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
311 $ echo b > dir1/file2 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
312 $ mkdir dir1/subdir1 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
313 $ echo c > dir1/subdir1/file3 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
314 $ echo d > dir1/subdir1/file4 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
315 $ hg ci -Aqm initial |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
316 $ hg mv dir1 dir2 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
317 moving dir1/file1 to dir2/file1 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
318 moving dir1/file2 to dir2/file2 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
319 moving dir1/subdir1/file3 to dir2/subdir1/file3 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
320 moving dir1/subdir1/file4 to dir2/subdir1/file4 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
321 $ hg mv dir2/subdir1 dir2/subdir2 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
322 moving dir2/subdir1/file3 to dir2/subdir2/file3 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
323 moving dir2/subdir1/file4 to dir2/subdir2/file4 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
324 $ hg ci -m 'move dir1/ to dir2/ and dir1/subdir1/ to dir2/subdir2/' |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
325 $ hg co 0 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
326 4 files updated, 0 files merged, 4 files removed, 0 files unresolved |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
327 $ echo e > dir1/subdir1/file5 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
328 $ hg ci -Aqm 'add file in dir1/subdir1/' |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
329 $ hg merge 1 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
330 5 files updated, 0 files merged, 4 files removed, 0 files unresolved |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
331 (branch merge, don't forget to commit) |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
332 $ hg files |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
333 dir2/file1 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
334 dir2/file2 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
335 dir2/subdir2/file3 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
336 dir2/subdir2/file4 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
337 dir2/subdir2/file5 |
ad30b29bc23d
copies: choose target directory based on longest match
Martin von Zweigbergk <martinvonz@google.com>
parents:
46418
diff
changeset
|
338 $ cd .. |