Show More
@@ -1,255 +1,255 b'' | |||||
1 | Test for the full copytracing algorithm |
|
1 | Test for the full copytracing algorithm | |
2 | ======================================= |
|
2 | ======================================= | |
3 |
|
3 | |||
4 |
|
4 | |||
5 | Initial Setup |
|
5 | Initial Setup | |
6 | ============= |
|
6 | ============= | |
7 |
|
7 | |||
8 | use git diff to see rename |
|
8 | use git diff to see rename | |
9 |
|
9 | |||
10 | $ cat << EOF >> $HGRCPATH |
|
10 | $ cat << EOF >> $HGRCPATH | |
11 | > [diff] |
|
11 | > [diff] | |
12 | > git=yes |
|
12 | > git=yes | |
13 | > EOF |
|
13 | > EOF | |
14 |
|
14 | |||
15 | Setup an history where one side copy and rename a file (and update it) while the other side update it. |
|
15 | Setup an history where one side copy and rename a file (and update it) while the other side update it. | |
16 |
|
16 | |||
17 | $ hg init t |
|
17 | $ hg init t | |
18 | $ cd t |
|
18 | $ cd t | |
19 |
|
19 | |||
20 | $ echo 1 > a |
|
20 | $ echo 1 > a | |
21 | $ hg ci -qAm "first" |
|
21 | $ hg ci -qAm "first" | |
22 |
|
22 | |||
23 | $ hg cp a b |
|
23 | $ hg cp a b | |
24 | $ hg mv a c |
|
24 | $ hg mv a c | |
25 | $ echo 2 >> b |
|
25 | $ echo 2 >> b | |
26 | $ echo 2 >> c |
|
26 | $ echo 2 >> c | |
27 |
|
27 | |||
28 | $ hg ci -qAm "second" |
|
28 | $ hg ci -qAm "second" | |
29 |
|
29 | |||
30 | $ hg co -C 0 |
|
30 | $ hg co -C 0 | |
31 | 1 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
31 | 1 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
32 |
|
32 | |||
33 | $ echo 0 > a |
|
33 | $ echo 0 > a | |
34 | $ echo 1 >> a |
|
34 | $ echo 1 >> a | |
35 |
|
35 | |||
36 | $ hg ci -qAm "other" |
|
36 | $ hg ci -qAm "other" | |
37 |
|
37 | |||
38 | $ hg log -G --patch |
|
38 | $ hg log -G --patch | |
39 | @ changeset: 2:add3f11052fa |
|
39 | @ changeset: 2:add3f11052fa | |
40 | | tag: tip |
|
40 | | tag: tip | |
41 | | parent: 0:b8bf91eeebbc |
|
41 | | parent: 0:b8bf91eeebbc | |
42 | | user: test |
|
42 | | user: test | |
43 | | date: Thu Jan 01 00:00:00 1970 +0000 |
|
43 | | date: Thu Jan 01 00:00:00 1970 +0000 | |
44 | | summary: other |
|
44 | | summary: other | |
45 | | |
|
45 | | | |
46 | | diff --git a/a b/a |
|
46 | | diff --git a/a b/a | |
47 | | --- a/a |
|
47 | | --- a/a | |
48 | | +++ b/a |
|
48 | | +++ b/a | |
49 | | @@ -1,1 +1,2 @@ |
|
49 | | @@ -1,1 +1,2 @@ | |
50 | | +0 |
|
50 | | +0 | |
51 | | 1 |
|
51 | | 1 | |
52 | | |
|
52 | | | |
53 | | o changeset: 1:17c05bb7fcb6 |
|
53 | | o changeset: 1:17c05bb7fcb6 | |
54 | |/ user: test |
|
54 | |/ user: test | |
55 | | date: Thu Jan 01 00:00:00 1970 +0000 |
|
55 | | date: Thu Jan 01 00:00:00 1970 +0000 | |
56 | | summary: second |
|
56 | | summary: second | |
57 | | |
|
57 | | | |
58 | | diff --git a/a b/b |
|
58 | | diff --git a/a b/b | |
59 | | rename from a |
|
59 | | rename from a | |
60 | | rename to b |
|
60 | | rename to b | |
61 | | --- a/a |
|
61 | | --- a/a | |
62 | | +++ b/b |
|
62 | | +++ b/b | |
63 | | @@ -1,1 +1,2 @@ |
|
63 | | @@ -1,1 +1,2 @@ | |
64 | | 1 |
|
64 | | 1 | |
65 | | +2 |
|
65 | | +2 | |
66 | | diff --git a/a b/c |
|
66 | | diff --git a/a b/c | |
67 | | copy from a |
|
67 | | copy from a | |
68 | | copy to c |
|
68 | | copy to c | |
69 | | --- a/a |
|
69 | | --- a/a | |
70 | | +++ b/c |
|
70 | | +++ b/c | |
71 | | @@ -1,1 +1,2 @@ |
|
71 | | @@ -1,1 +1,2 @@ | |
72 | | 1 |
|
72 | | 1 | |
73 | | +2 |
|
73 | | +2 | |
74 | | |
|
74 | | | |
75 | o changeset: 0:b8bf91eeebbc |
|
75 | o changeset: 0:b8bf91eeebbc | |
76 | user: test |
|
76 | user: test | |
77 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
77 | date: Thu Jan 01 00:00:00 1970 +0000 | |
78 | summary: first |
|
78 | summary: first | |
79 |
|
79 | |||
80 | diff --git a/a b/a |
|
80 | diff --git a/a b/a | |
81 | new file mode 100644 |
|
81 | new file mode 100644 | |
82 | --- /dev/null |
|
82 | --- /dev/null | |
83 | +++ b/a |
|
83 | +++ b/a | |
84 | @@ -0,0 +1,1 @@ |
|
84 | @@ -0,0 +1,1 @@ | |
85 | +1 |
|
85 | +1 | |
86 |
|
86 | |||
87 |
|
87 | |||
88 | Test Simple Merge |
|
88 | Test Simple Merge | |
89 | ================= |
|
89 | ================= | |
90 |
|
90 | |||
91 | $ hg merge --debug |
|
91 | $ hg merge --debug | |
92 | unmatched files in other: |
|
92 | unmatched files in other: | |
93 | b |
|
93 | b | |
94 | c |
|
94 | c | |
95 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
95 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
96 | on remote side: |
|
96 | on remote side: | |
97 | src: 'a' -> dst: 'b' * |
|
97 | src: 'a' -> dst: 'b' * | |
98 | src: 'a' -> dst: 'c' * |
|
98 | src: 'a' -> dst: 'c' * | |
99 | checking for directory renames |
|
99 | checking for directory renames | |
100 | resolving manifests |
|
100 | resolving manifests | |
101 | branchmerge: True, force: False, partial: False |
|
101 | branchmerge: True, force: False, partial: False | |
102 | ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6 |
|
102 | ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6 | |
|
103 | starting 4 threads for background file closing (?) | |||
103 | preserving a for resolve of b |
|
104 | preserving a for resolve of b | |
104 | preserving a for resolve of c |
|
105 | preserving a for resolve of c | |
105 | removing a |
|
106 | removing a | |
106 | starting 4 threads for background file closing (?) |
|
|||
107 | b: remote moved from a -> m (premerge) |
|
107 | b: remote moved from a -> m (premerge) | |
108 | picked tool ':merge' for b (binary False symlink False changedelete False) |
|
108 | picked tool ':merge' for b (binary False symlink False changedelete False) | |
109 | merging a and b to b |
|
109 | merging a and b to b | |
110 | my b@add3f11052fa+ other b@17c05bb7fcb6 ancestor a@b8bf91eeebbc |
|
110 | my b@add3f11052fa+ other b@17c05bb7fcb6 ancestor a@b8bf91eeebbc | |
111 | premerge successful |
|
111 | premerge successful | |
112 | c: remote moved from a -> m (premerge) |
|
112 | c: remote moved from a -> m (premerge) | |
113 | picked tool ':merge' for c (binary False symlink False changedelete False) |
|
113 | picked tool ':merge' for c (binary False symlink False changedelete False) | |
114 | merging a and c to c |
|
114 | merging a and c to c | |
115 | my c@add3f11052fa+ other c@17c05bb7fcb6 ancestor a@b8bf91eeebbc |
|
115 | my c@add3f11052fa+ other c@17c05bb7fcb6 ancestor a@b8bf91eeebbc | |
116 | premerge successful |
|
116 | premerge successful | |
117 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
117 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
118 | (branch merge, don't forget to commit) |
|
118 | (branch merge, don't forget to commit) | |
119 |
|
119 | |||
120 | file b |
|
120 | file b | |
121 | $ cat b |
|
121 | $ cat b | |
122 | 0 |
|
122 | 0 | |
123 | 1 |
|
123 | 1 | |
124 | 2 |
|
124 | 2 | |
125 |
|
125 | |||
126 | file c |
|
126 | file c | |
127 | $ cat c |
|
127 | $ cat c | |
128 | 0 |
|
128 | 0 | |
129 | 1 |
|
129 | 1 | |
130 | 2 |
|
130 | 2 | |
131 |
|
131 | |||
132 | Test disabling copy tracing |
|
132 | Test disabling copy tracing | |
133 | =========================== |
|
133 | =========================== | |
134 |
|
134 | |||
135 | first verify copy metadata was kept |
|
135 | first verify copy metadata was kept | |
136 | ----------------------------------- |
|
136 | ----------------------------------- | |
137 |
|
137 | |||
138 | $ hg up -qC 2 |
|
138 | $ hg up -qC 2 | |
139 | $ hg rebase --keep -d 1 -b 2 --config extensions.rebase= |
|
139 | $ hg rebase --keep -d 1 -b 2 --config extensions.rebase= | |
140 | rebasing 2:add3f11052fa tip "other" |
|
140 | rebasing 2:add3f11052fa tip "other" | |
141 | merging b and a to b |
|
141 | merging b and a to b | |
142 | merging c and a to c |
|
142 | merging c and a to c | |
143 |
|
143 | |||
144 | $ cat b |
|
144 | $ cat b | |
145 | 0 |
|
145 | 0 | |
146 | 1 |
|
146 | 1 | |
147 | 2 |
|
147 | 2 | |
148 |
|
148 | |||
149 | next verify copy metadata is lost when disabled |
|
149 | next verify copy metadata is lost when disabled | |
150 | ------------------------------------------------ |
|
150 | ------------------------------------------------ | |
151 |
|
151 | |||
152 | $ hg strip -r . --config extensions.strip= |
|
152 | $ hg strip -r . --config extensions.strip= | |
153 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
153 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
154 | saved backup bundle to $TESTTMP/t/.hg/strip-backup/550bd84c0cd3-fc575957-backup.hg |
|
154 | saved backup bundle to $TESTTMP/t/.hg/strip-backup/550bd84c0cd3-fc575957-backup.hg | |
155 | $ hg up -qC 2 |
|
155 | $ hg up -qC 2 | |
156 | $ hg rebase --keep -d 1 -b 2 --config extensions.rebase= --config experimental.copytrace=off --config ui.interactive=True << EOF |
|
156 | $ hg rebase --keep -d 1 -b 2 --config extensions.rebase= --config experimental.copytrace=off --config ui.interactive=True << EOF | |
157 | > c |
|
157 | > c | |
158 | > EOF |
|
158 | > EOF | |
159 | rebasing 2:add3f11052fa tip "other" |
|
159 | rebasing 2:add3f11052fa tip "other" | |
160 | file 'a' was deleted in local [dest] but was modified in other [source]. |
|
160 | file 'a' was deleted in local [dest] but was modified in other [source]. | |
161 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. |
|
161 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | |
162 | What do you want to do? c |
|
162 | What do you want to do? c | |
163 |
|
163 | |||
164 | $ cat b |
|
164 | $ cat b | |
165 | 1 |
|
165 | 1 | |
166 | 2 |
|
166 | 2 | |
167 |
|
167 | |||
168 | $ cd .. |
|
168 | $ cd .. | |
169 |
|
169 | |||
170 | Verify disabling copy tracing still keeps copies from rebase source |
|
170 | Verify disabling copy tracing still keeps copies from rebase source | |
171 | ------------------------------------------------------------------- |
|
171 | ------------------------------------------------------------------- | |
172 |
|
172 | |||
173 | $ hg init copydisable |
|
173 | $ hg init copydisable | |
174 | $ cd copydisable |
|
174 | $ cd copydisable | |
175 | $ touch a |
|
175 | $ touch a | |
176 | $ hg ci -Aqm 'add a' |
|
176 | $ hg ci -Aqm 'add a' | |
177 | $ touch b |
|
177 | $ touch b | |
178 | $ hg ci -Aqm 'add b, c' |
|
178 | $ hg ci -Aqm 'add b, c' | |
179 | $ hg cp b x |
|
179 | $ hg cp b x | |
180 | $ echo x >> x |
|
180 | $ echo x >> x | |
181 | $ hg ci -qm 'copy b->x' |
|
181 | $ hg ci -qm 'copy b->x' | |
182 | $ hg up -q 1 |
|
182 | $ hg up -q 1 | |
183 | $ touch z |
|
183 | $ touch z | |
184 | $ hg ci -Aqm 'add z' |
|
184 | $ hg ci -Aqm 'add z' | |
185 | $ hg log -G -T '{rev} {desc}\n' |
|
185 | $ hg log -G -T '{rev} {desc}\n' | |
186 | @ 3 add z |
|
186 | @ 3 add z | |
187 | | |
|
187 | | | |
188 | | o 2 copy b->x |
|
188 | | o 2 copy b->x | |
189 | |/ |
|
189 | |/ | |
190 | o 1 add b, c |
|
190 | o 1 add b, c | |
191 | | |
|
191 | | | |
192 | o 0 add a |
|
192 | o 0 add a | |
193 |
|
193 | |||
194 | $ hg rebase -d . -b 2 --config extensions.rebase= --config experimental.copytrace=off |
|
194 | $ hg rebase -d . -b 2 --config extensions.rebase= --config experimental.copytrace=off | |
195 | rebasing 2:6adcf8c12e7d "copy b->x" |
|
195 | rebasing 2:6adcf8c12e7d "copy b->x" | |
196 | saved backup bundle to $TESTTMP/copydisable/.hg/strip-backup/6adcf8c12e7d-ce4b3e75-rebase.hg |
|
196 | saved backup bundle to $TESTTMP/copydisable/.hg/strip-backup/6adcf8c12e7d-ce4b3e75-rebase.hg | |
197 | $ hg up -q 3 |
|
197 | $ hg up -q 3 | |
198 | $ hg log -f x -T '{rev} {desc}\n' |
|
198 | $ hg log -f x -T '{rev} {desc}\n' | |
199 | 3 copy b->x |
|
199 | 3 copy b->x | |
200 | 1 add b, c |
|
200 | 1 add b, c | |
201 |
|
201 | |||
202 | $ cd ../ |
|
202 | $ cd ../ | |
203 |
|
203 | |||
204 |
|
204 | |||
205 | test storage preservation |
|
205 | test storage preservation | |
206 | ------------------------- |
|
206 | ------------------------- | |
207 |
|
207 | |||
208 | Verify rebase do not discard recorded copies data when copy tracing usage is |
|
208 | Verify rebase do not discard recorded copies data when copy tracing usage is | |
209 | disabled. |
|
209 | disabled. | |
210 |
|
210 | |||
211 | Setup |
|
211 | Setup | |
212 |
|
212 | |||
213 | $ hg init copydisable3 |
|
213 | $ hg init copydisable3 | |
214 | $ cd copydisable3 |
|
214 | $ cd copydisable3 | |
215 | $ touch a |
|
215 | $ touch a | |
216 | $ hg ci -Aqm 'add a' |
|
216 | $ hg ci -Aqm 'add a' | |
217 | $ hg cp a b |
|
217 | $ hg cp a b | |
218 | $ hg ci -Aqm 'copy a->b' |
|
218 | $ hg ci -Aqm 'copy a->b' | |
219 | $ hg mv b c |
|
219 | $ hg mv b c | |
220 | $ hg ci -Aqm 'move b->c' |
|
220 | $ hg ci -Aqm 'move b->c' | |
221 | $ hg up -q 0 |
|
221 | $ hg up -q 0 | |
222 | $ hg cp a b |
|
222 | $ hg cp a b | |
223 | $ echo b >> b |
|
223 | $ echo b >> b | |
224 | $ hg ci -Aqm 'copy a->b (2)' |
|
224 | $ hg ci -Aqm 'copy a->b (2)' | |
225 | $ hg log -G -T '{rev} {desc}\n' |
|
225 | $ hg log -G -T '{rev} {desc}\n' | |
226 | @ 3 copy a->b (2) |
|
226 | @ 3 copy a->b (2) | |
227 | | |
|
227 | | | |
228 | | o 2 move b->c |
|
228 | | o 2 move b->c | |
229 | | | |
|
229 | | | | |
230 | | o 1 copy a->b |
|
230 | | o 1 copy a->b | |
231 | |/ |
|
231 | |/ | |
232 | o 0 add a |
|
232 | o 0 add a | |
233 |
|
233 | |||
234 |
|
234 | |||
235 | Actual Test |
|
235 | Actual Test | |
236 |
|
236 | |||
237 | A file is copied on one side and has been moved twice on the other side. the |
|
237 | A file is copied on one side and has been moved twice on the other side. the | |
238 | file is copied from `0:a`, so the file history of the `3:b` should trace directly to `0:a`. |
|
238 | file is copied from `0:a`, so the file history of the `3:b` should trace directly to `0:a`. | |
239 |
|
239 | |||
240 | $ hg rebase -d 2 -s 3 --config extensions.rebase= --config experimental.copytrace=off |
|
240 | $ hg rebase -d 2 -s 3 --config extensions.rebase= --config experimental.copytrace=off | |
241 | rebasing 3:47e1a9e6273b tip "copy a->b (2)" |
|
241 | rebasing 3:47e1a9e6273b tip "copy a->b (2)" | |
242 | saved backup bundle to $TESTTMP/copydisable3/.hg/strip-backup/47e1a9e6273b-2d099c59-rebase.hg |
|
242 | saved backup bundle to $TESTTMP/copydisable3/.hg/strip-backup/47e1a9e6273b-2d099c59-rebase.hg | |
243 |
|
243 | |||
244 | $ hg log -G -f b |
|
244 | $ hg log -G -f b | |
245 | @ changeset: 3:76024fb4b05b |
|
245 | @ changeset: 3:76024fb4b05b | |
246 | : tag: tip |
|
246 | : tag: tip | |
247 | : user: test |
|
247 | : user: test | |
248 | : date: Thu Jan 01 00:00:00 1970 +0000 |
|
248 | : date: Thu Jan 01 00:00:00 1970 +0000 | |
249 | : summary: copy a->b (2) |
|
249 | : summary: copy a->b (2) | |
250 | : |
|
250 | : | |
251 | o changeset: 0:ac82d8b1f7c4 |
|
251 | o changeset: 0:ac82d8b1f7c4 | |
252 | user: test |
|
252 | user: test | |
253 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
253 | date: Thu Jan 01 00:00:00 1970 +0000 | |
254 | summary: add a |
|
254 | summary: add a | |
255 |
|
255 |
@@ -1,66 +1,66 b'' | |||||
1 | $ hg init repo |
|
1 | $ hg init repo | |
2 | $ cd repo |
|
2 | $ cd repo | |
3 |
|
3 | |||
4 | $ echo line 1 > foo |
|
4 | $ echo line 1 > foo | |
5 | $ hg ci -qAm 'add foo' |
|
5 | $ hg ci -qAm 'add foo' | |
6 |
|
6 | |||
7 | copy foo to bar and change both files |
|
7 | copy foo to bar and change both files | |
8 | $ hg cp foo bar |
|
8 | $ hg cp foo bar | |
9 | $ echo line 2-1 >> foo |
|
9 | $ echo line 2-1 >> foo | |
10 | $ echo line 2-2 >> bar |
|
10 | $ echo line 2-2 >> bar | |
11 | $ hg ci -m 'cp foo bar; change both' |
|
11 | $ hg ci -m 'cp foo bar; change both' | |
12 |
|
12 | |||
13 | in another branch, change foo in a way that doesn't conflict with |
|
13 | in another branch, change foo in a way that doesn't conflict with | |
14 | the other changes |
|
14 | the other changes | |
15 | $ hg up -qC 0 |
|
15 | $ hg up -qC 0 | |
16 | $ echo line 0 > foo |
|
16 | $ echo line 0 > foo | |
17 | $ hg cat foo >> foo |
|
17 | $ hg cat foo >> foo | |
18 | $ hg ci -m 'change foo' |
|
18 | $ hg ci -m 'change foo' | |
19 | created new head |
|
19 | created new head | |
20 |
|
20 | |||
21 | we get conflicts that shouldn't be there |
|
21 | we get conflicts that shouldn't be there | |
22 | $ hg merge -P |
|
22 | $ hg merge -P | |
23 | changeset: 1:484bf6903104 |
|
23 | changeset: 1:484bf6903104 | |
24 | user: test |
|
24 | user: test | |
25 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
25 | date: Thu Jan 01 00:00:00 1970 +0000 | |
26 | summary: cp foo bar; change both |
|
26 | summary: cp foo bar; change both | |
27 |
|
27 | |||
28 | $ hg merge --debug |
|
28 | $ hg merge --debug | |
29 | unmatched files in other: |
|
29 | unmatched files in other: | |
30 | bar |
|
30 | bar | |
31 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
31 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
32 | on remote side: |
|
32 | on remote side: | |
33 | src: 'foo' -> dst: 'bar' * |
|
33 | src: 'foo' -> dst: 'bar' * | |
34 | checking for directory renames |
|
34 | checking for directory renames | |
35 | resolving manifests |
|
35 | resolving manifests | |
36 | branchmerge: True, force: False, partial: False |
|
36 | branchmerge: True, force: False, partial: False | |
37 | ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104 |
|
37 | ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104 | |
|
38 | starting 4 threads for background file closing (?) | |||
38 | preserving foo for resolve of bar |
|
39 | preserving foo for resolve of bar | |
39 | preserving foo for resolve of foo |
|
40 | preserving foo for resolve of foo | |
40 | starting 4 threads for background file closing (?) |
|
|||
41 | bar: remote copied from foo -> m (premerge) |
|
41 | bar: remote copied from foo -> m (premerge) | |
42 | picked tool ':merge' for bar (binary False symlink False changedelete False) |
|
42 | picked tool ':merge' for bar (binary False symlink False changedelete False) | |
43 | merging foo and bar to bar |
|
43 | merging foo and bar to bar | |
44 | my bar@6a0df1dad128+ other bar@484bf6903104 ancestor foo@e6dc8efe11cc |
|
44 | my bar@6a0df1dad128+ other bar@484bf6903104 ancestor foo@e6dc8efe11cc | |
45 | premerge successful |
|
45 | premerge successful | |
46 | foo: versions differ -> m (premerge) |
|
46 | foo: versions differ -> m (premerge) | |
47 | picked tool ':merge' for foo (binary False symlink False changedelete False) |
|
47 | picked tool ':merge' for foo (binary False symlink False changedelete False) | |
48 | merging foo |
|
48 | merging foo | |
49 | my foo@6a0df1dad128+ other foo@484bf6903104 ancestor foo@e6dc8efe11cc |
|
49 | my foo@6a0df1dad128+ other foo@484bf6903104 ancestor foo@e6dc8efe11cc | |
50 | premerge successful |
|
50 | premerge successful | |
51 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
51 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
52 | (branch merge, don't forget to commit) |
|
52 | (branch merge, don't forget to commit) | |
53 |
|
53 | |||
54 | contents of foo |
|
54 | contents of foo | |
55 | $ cat foo |
|
55 | $ cat foo | |
56 | line 0 |
|
56 | line 0 | |
57 | line 1 |
|
57 | line 1 | |
58 | line 2-1 |
|
58 | line 2-1 | |
59 |
|
59 | |||
60 | contents of bar |
|
60 | contents of bar | |
61 | $ cat bar |
|
61 | $ cat bar | |
62 | line 0 |
|
62 | line 0 | |
63 | line 1 |
|
63 | line 1 | |
64 | line 2-2 |
|
64 | line 2-2 | |
65 |
|
65 | |||
66 | $ cd .. |
|
66 | $ cd .. |
@@ -1,934 +1,934 b'' | |||||
1 | $ cat >> $HGRCPATH <<EOF |
|
1 | $ cat >> $HGRCPATH <<EOF | |
2 | > [extdiff] |
|
2 | > [extdiff] | |
3 | > # for portability: |
|
3 | > # for portability: | |
4 | > pdiff = sh "$RUNTESTDIR/pdiff" |
|
4 | > pdiff = sh "$RUNTESTDIR/pdiff" | |
5 | > EOF |
|
5 | > EOF | |
6 |
|
6 | |||
7 | Create a repo with some stuff in it: |
|
7 | Create a repo with some stuff in it: | |
8 |
|
8 | |||
9 | $ hg init a |
|
9 | $ hg init a | |
10 | $ cd a |
|
10 | $ cd a | |
11 | $ echo a > a |
|
11 | $ echo a > a | |
12 | $ echo a > d |
|
12 | $ echo a > d | |
13 | $ echo a > e |
|
13 | $ echo a > e | |
14 | $ hg ci -qAm0 |
|
14 | $ hg ci -qAm0 | |
15 | $ echo b > a |
|
15 | $ echo b > a | |
16 | $ hg ci -m1 -u bar |
|
16 | $ hg ci -m1 -u bar | |
17 | $ hg mv a b |
|
17 | $ hg mv a b | |
18 | $ hg ci -m2 |
|
18 | $ hg ci -m2 | |
19 | $ hg cp b c |
|
19 | $ hg cp b c | |
20 | $ hg ci -m3 -u baz |
|
20 | $ hg ci -m3 -u baz | |
21 | $ echo b > d |
|
21 | $ echo b > d | |
22 | $ echo f > e |
|
22 | $ echo f > e | |
23 | $ hg ci -m4 |
|
23 | $ hg ci -m4 | |
24 | $ hg up -q 3 |
|
24 | $ hg up -q 3 | |
25 | $ echo b > e |
|
25 | $ echo b > e | |
26 | $ hg branch -q stable |
|
26 | $ hg branch -q stable | |
27 | $ hg ci -m5 |
|
27 | $ hg ci -m5 | |
28 | $ hg merge -q default --tool internal:local # for conflicts in e, choose 5 and ignore 4 |
|
28 | $ hg merge -q default --tool internal:local # for conflicts in e, choose 5 and ignore 4 | |
29 | $ hg branch -q default |
|
29 | $ hg branch -q default | |
30 | $ hg ci -m6 |
|
30 | $ hg ci -m6 | |
31 | $ hg phase --public 3 |
|
31 | $ hg phase --public 3 | |
32 | $ hg phase --force --secret 6 |
|
32 | $ hg phase --force --secret 6 | |
33 |
|
33 | |||
34 | $ hg log -G --template '{author}@{rev}.{phase}: {desc}\n' |
|
34 | $ hg log -G --template '{author}@{rev}.{phase}: {desc}\n' | |
35 | @ test@6.secret: 6 |
|
35 | @ test@6.secret: 6 | |
36 | |\ |
|
36 | |\ | |
37 | | o test@5.draft: 5 |
|
37 | | o test@5.draft: 5 | |
38 | | | |
|
38 | | | | |
39 | o | test@4.draft: 4 |
|
39 | o | test@4.draft: 4 | |
40 | |/ |
|
40 | |/ | |
41 | o baz@3.public: 3 |
|
41 | o baz@3.public: 3 | |
42 | | |
|
42 | | | |
43 | o test@2.public: 2 |
|
43 | o test@2.public: 2 | |
44 | | |
|
44 | | | |
45 | o bar@1.public: 1 |
|
45 | o bar@1.public: 1 | |
46 | | |
|
46 | | | |
47 | o test@0.public: 0 |
|
47 | o test@0.public: 0 | |
48 |
|
48 | |||
49 | Test --base for grafting the merge of 4 from the perspective of 5, thus only getting the change to d |
|
49 | Test --base for grafting the merge of 4 from the perspective of 5, thus only getting the change to d | |
50 |
|
50 | |||
51 | $ hg up -cqr 3 |
|
51 | $ hg up -cqr 3 | |
52 | $ hg graft -r 6 --base 5 |
|
52 | $ hg graft -r 6 --base 5 | |
53 | grafting 6:25a2b029d3ae "6" (tip) |
|
53 | grafting 6:25a2b029d3ae "6" (tip) | |
54 | merging e |
|
54 | merging e | |
55 | $ hg st --change . |
|
55 | $ hg st --change . | |
56 | M d |
|
56 | M d | |
57 |
|
57 | |||
58 | $ hg -q strip . --config extensions.strip= |
|
58 | $ hg -q strip . --config extensions.strip= | |
59 |
|
59 | |||
60 | Test --base for collapsing changesets 2 and 3, thus getting both b and c |
|
60 | Test --base for collapsing changesets 2 and 3, thus getting both b and c | |
61 |
|
61 | |||
62 | $ hg up -cqr 0 |
|
62 | $ hg up -cqr 0 | |
63 | $ hg graft -r 3 --base 1 |
|
63 | $ hg graft -r 3 --base 1 | |
64 | grafting 3:4c60f11aa304 "3" |
|
64 | grafting 3:4c60f11aa304 "3" | |
65 | merging a and b to b |
|
65 | merging a and b to b | |
66 | merging a and c to c |
|
66 | merging a and c to c | |
67 | $ hg st --change . |
|
67 | $ hg st --change . | |
68 | A b |
|
68 | A b | |
69 | A c |
|
69 | A c | |
70 | R a |
|
70 | R a | |
71 |
|
71 | |||
72 | $ hg -q strip . --config extensions.strip= |
|
72 | $ hg -q strip . --config extensions.strip= | |
73 |
|
73 | |||
74 | Specifying child as --base revision fails safely (perhaps slightly confusing, but consistent) |
|
74 | Specifying child as --base revision fails safely (perhaps slightly confusing, but consistent) | |
75 |
|
75 | |||
76 | $ hg graft -r 2 --base 3 |
|
76 | $ hg graft -r 2 --base 3 | |
77 | grafting 2:5c095ad7e90f "2" |
|
77 | grafting 2:5c095ad7e90f "2" | |
78 | note: possible conflict - c was deleted and renamed to: |
|
78 | note: possible conflict - c was deleted and renamed to: | |
79 | a |
|
79 | a | |
80 | note: graft of 2:5c095ad7e90f created no changes to commit |
|
80 | note: graft of 2:5c095ad7e90f created no changes to commit | |
81 |
|
81 | |||
82 | Can't continue without starting: |
|
82 | Can't continue without starting: | |
83 |
|
83 | |||
84 | $ hg -q up -cr tip |
|
84 | $ hg -q up -cr tip | |
85 | $ hg rm -q e |
|
85 | $ hg rm -q e | |
86 | $ hg graft --continue |
|
86 | $ hg graft --continue | |
87 | abort: no graft in progress |
|
87 | abort: no graft in progress | |
88 | [20] |
|
88 | [20] | |
89 | $ hg revert -r . -q e |
|
89 | $ hg revert -r . -q e | |
90 |
|
90 | |||
91 | Need to specify a rev: |
|
91 | Need to specify a rev: | |
92 |
|
92 | |||
93 | $ hg graft |
|
93 | $ hg graft | |
94 | abort: no revisions specified |
|
94 | abort: no revisions specified | |
95 | [10] |
|
95 | [10] | |
96 |
|
96 | |||
97 | Can't graft ancestor: |
|
97 | Can't graft ancestor: | |
98 |
|
98 | |||
99 | $ hg graft 1 2 |
|
99 | $ hg graft 1 2 | |
100 | skipping ancestor revision 1:5d205f8b35b6 |
|
100 | skipping ancestor revision 1:5d205f8b35b6 | |
101 | skipping ancestor revision 2:5c095ad7e90f |
|
101 | skipping ancestor revision 2:5c095ad7e90f | |
102 | [255] |
|
102 | [255] | |
103 |
|
103 | |||
104 | Specify revisions with -r: |
|
104 | Specify revisions with -r: | |
105 |
|
105 | |||
106 | $ hg graft -r 1 -r 2 |
|
106 | $ hg graft -r 1 -r 2 | |
107 | skipping ancestor revision 1:5d205f8b35b6 |
|
107 | skipping ancestor revision 1:5d205f8b35b6 | |
108 | skipping ancestor revision 2:5c095ad7e90f |
|
108 | skipping ancestor revision 2:5c095ad7e90f | |
109 | [255] |
|
109 | [255] | |
110 |
|
110 | |||
111 | $ hg graft -r 1 2 |
|
111 | $ hg graft -r 1 2 | |
112 | warning: inconsistent use of --rev might give unexpected revision ordering! |
|
112 | warning: inconsistent use of --rev might give unexpected revision ordering! | |
113 | skipping ancestor revision 2:5c095ad7e90f |
|
113 | skipping ancestor revision 2:5c095ad7e90f | |
114 | skipping ancestor revision 1:5d205f8b35b6 |
|
114 | skipping ancestor revision 1:5d205f8b35b6 | |
115 | [255] |
|
115 | [255] | |
116 |
|
116 | |||
117 | Conflicting date/user options: |
|
117 | Conflicting date/user options: | |
118 |
|
118 | |||
119 | $ hg up -q 0 |
|
119 | $ hg up -q 0 | |
120 | $ hg graft -U --user foo 2 |
|
120 | $ hg graft -U --user foo 2 | |
121 | abort: cannot specify both --user and --currentuser |
|
121 | abort: cannot specify both --user and --currentuser | |
122 | [10] |
|
122 | [10] | |
123 | $ hg graft -D --date '0 0' 2 |
|
123 | $ hg graft -D --date '0 0' 2 | |
124 | abort: cannot specify both --date and --currentdate |
|
124 | abort: cannot specify both --date and --currentdate | |
125 | [10] |
|
125 | [10] | |
126 |
|
126 | |||
127 | Can't graft with dirty wd: |
|
127 | Can't graft with dirty wd: | |
128 |
|
128 | |||
129 | $ hg up -q 0 |
|
129 | $ hg up -q 0 | |
130 | $ echo foo > a |
|
130 | $ echo foo > a | |
131 | $ hg graft 1 |
|
131 | $ hg graft 1 | |
132 | abort: uncommitted changes |
|
132 | abort: uncommitted changes | |
133 | [20] |
|
133 | [20] | |
134 | $ hg revert a |
|
134 | $ hg revert a | |
135 |
|
135 | |||
136 | Graft a rename: |
|
136 | Graft a rename: | |
137 | (this also tests that editor is invoked if '--edit' is specified) |
|
137 | (this also tests that editor is invoked if '--edit' is specified) | |
138 |
|
138 | |||
139 | $ hg status --rev "2^1" --rev 2 |
|
139 | $ hg status --rev "2^1" --rev 2 | |
140 | A b |
|
140 | A b | |
141 | R a |
|
141 | R a | |
142 | $ HGEDITOR=cat hg graft 2 -u foo --edit |
|
142 | $ HGEDITOR=cat hg graft 2 -u foo --edit | |
143 | grafting 2:5c095ad7e90f "2" |
|
143 | grafting 2:5c095ad7e90f "2" | |
144 | merging a and b to b |
|
144 | merging a and b to b | |
145 | 2 |
|
145 | 2 | |
146 |
|
146 | |||
147 |
|
147 | |||
148 | HG: Enter commit message. Lines beginning with 'HG:' are removed. |
|
148 | HG: Enter commit message. Lines beginning with 'HG:' are removed. | |
149 | HG: Leave message empty to abort commit. |
|
149 | HG: Leave message empty to abort commit. | |
150 | HG: -- |
|
150 | HG: -- | |
151 | HG: user: foo |
|
151 | HG: user: foo | |
152 | HG: branch 'default' |
|
152 | HG: branch 'default' | |
153 | HG: added b |
|
153 | HG: added b | |
154 | HG: removed a |
|
154 | HG: removed a | |
155 | $ hg export tip --git |
|
155 | $ hg export tip --git | |
156 | # HG changeset patch |
|
156 | # HG changeset patch | |
157 | # User foo |
|
157 | # User foo | |
158 | # Date 0 0 |
|
158 | # Date 0 0 | |
159 | # Thu Jan 01 00:00:00 1970 +0000 |
|
159 | # Thu Jan 01 00:00:00 1970 +0000 | |
160 | # Node ID ef0ef43d49e79e81ddafdc7997401ba0041efc82 |
|
160 | # Node ID ef0ef43d49e79e81ddafdc7997401ba0041efc82 | |
161 | # Parent 68795b066622ca79a25816a662041d8f78f3cd9e |
|
161 | # Parent 68795b066622ca79a25816a662041d8f78f3cd9e | |
162 | 2 |
|
162 | 2 | |
163 |
|
163 | |||
164 | diff --git a/a b/b |
|
164 | diff --git a/a b/b | |
165 | rename from a |
|
165 | rename from a | |
166 | rename to b |
|
166 | rename to b | |
167 |
|
167 | |||
168 | Look for extra:source |
|
168 | Look for extra:source | |
169 |
|
169 | |||
170 | $ hg log --debug -r tip |
|
170 | $ hg log --debug -r tip | |
171 | changeset: 7:ef0ef43d49e79e81ddafdc7997401ba0041efc82 |
|
171 | changeset: 7:ef0ef43d49e79e81ddafdc7997401ba0041efc82 | |
172 | tag: tip |
|
172 | tag: tip | |
173 | phase: draft |
|
173 | phase: draft | |
174 | parent: 0:68795b066622ca79a25816a662041d8f78f3cd9e |
|
174 | parent: 0:68795b066622ca79a25816a662041d8f78f3cd9e | |
175 | parent: -1:0000000000000000000000000000000000000000 |
|
175 | parent: -1:0000000000000000000000000000000000000000 | |
176 | manifest: 7:e59b6b228f9cbf9903d5e9abf996e083a1f533eb |
|
176 | manifest: 7:e59b6b228f9cbf9903d5e9abf996e083a1f533eb | |
177 | user: foo |
|
177 | user: foo | |
178 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
178 | date: Thu Jan 01 00:00:00 1970 +0000 | |
179 | files+: b |
|
179 | files+: b | |
180 | files-: a |
|
180 | files-: a | |
181 | extra: branch=default |
|
181 | extra: branch=default | |
182 | extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4 |
|
182 | extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4 | |
183 | description: |
|
183 | description: | |
184 | 2 |
|
184 | 2 | |
185 |
|
185 | |||
186 |
|
186 | |||
187 |
|
187 | |||
188 | Graft out of order, skipping a merge and a duplicate |
|
188 | Graft out of order, skipping a merge and a duplicate | |
189 | (this also tests that editor is not invoked if '--edit' is not specified) |
|
189 | (this also tests that editor is not invoked if '--edit' is not specified) | |
190 |
|
190 | |||
191 | $ hg graft 1 5 4 3 'merge()' 2 -n |
|
191 | $ hg graft 1 5 4 3 'merge()' 2 -n | |
192 | skipping ungraftable merge revision 6 |
|
192 | skipping ungraftable merge revision 6 | |
193 | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) |
|
193 | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) | |
194 | grafting 1:5d205f8b35b6 "1" |
|
194 | grafting 1:5d205f8b35b6 "1" | |
195 | grafting 5:97f8bfe72746 "5" |
|
195 | grafting 5:97f8bfe72746 "5" | |
196 | grafting 4:9c233e8e184d "4" |
|
196 | grafting 4:9c233e8e184d "4" | |
197 | grafting 3:4c60f11aa304 "3" |
|
197 | grafting 3:4c60f11aa304 "3" | |
198 |
|
198 | |||
199 | $ HGEDITOR=cat hg graft 1 5 'merge()' 2 --debug |
|
199 | $ HGEDITOR=cat hg graft 1 5 'merge()' 2 --debug | |
200 | skipping ungraftable merge revision 6 |
|
200 | skipping ungraftable merge revision 6 | |
201 | scanning for duplicate grafts |
|
201 | scanning for duplicate grafts | |
202 | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) |
|
202 | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) | |
203 | grafting 1:5d205f8b35b6 "1" |
|
203 | grafting 1:5d205f8b35b6 "1" | |
204 | unmatched files in local: |
|
204 | unmatched files in local: | |
205 | b |
|
205 | b | |
206 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
206 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
207 | on local side: |
|
207 | on local side: | |
208 | src: 'a' -> dst: 'b' * |
|
208 | src: 'a' -> dst: 'b' * | |
209 | checking for directory renames |
|
209 | checking for directory renames | |
210 | resolving manifests |
|
210 | resolving manifests | |
211 | branchmerge: True, force: True, partial: False |
|
211 | branchmerge: True, force: True, partial: False | |
212 | ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6 |
|
212 | ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6 | |
|
213 | starting 4 threads for background file closing (?) | |||
213 | preserving b for resolve of b |
|
214 | preserving b for resolve of b | |
214 | starting 4 threads for background file closing (?) |
|
|||
215 | b: local copied/moved from a -> m (premerge) |
|
215 | b: local copied/moved from a -> m (premerge) | |
216 | picked tool ':merge' for b (binary False symlink False changedelete False) |
|
216 | picked tool ':merge' for b (binary False symlink False changedelete False) | |
217 | merging b and a to b |
|
217 | merging b and a to b | |
218 | my b@ef0ef43d49e7+ other a@5d205f8b35b6 ancestor a@68795b066622 |
|
218 | my b@ef0ef43d49e7+ other a@5d205f8b35b6 ancestor a@68795b066622 | |
219 | premerge successful |
|
219 | premerge successful | |
220 | committing files: |
|
220 | committing files: | |
221 | b |
|
221 | b | |
222 | committing manifest |
|
222 | committing manifest | |
223 | committing changelog |
|
223 | committing changelog | |
224 | updating the branch cache |
|
224 | updating the branch cache | |
225 | grafting 5:97f8bfe72746 "5" |
|
225 | grafting 5:97f8bfe72746 "5" | |
226 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
226 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
227 | on local side: |
|
227 | on local side: | |
228 | src: 'c' -> dst: 'b' |
|
228 | src: 'c' -> dst: 'b' | |
229 | checking for directory renames |
|
229 | checking for directory renames | |
230 | resolving manifests |
|
230 | resolving manifests | |
231 | branchmerge: True, force: True, partial: False |
|
231 | branchmerge: True, force: True, partial: False | |
232 | ancestor: 4c60f11aa304, local: 6b9e5368ca4e+, remote: 97f8bfe72746 |
|
232 | ancestor: 4c60f11aa304, local: 6b9e5368ca4e+, remote: 97f8bfe72746 | |
233 | e: remote is newer -> g |
|
233 | e: remote is newer -> g | |
234 | getting e |
|
234 | getting e | |
235 | committing files: |
|
235 | committing files: | |
236 | e |
|
236 | e | |
237 | committing manifest |
|
237 | committing manifest | |
238 | committing changelog |
|
238 | committing changelog | |
239 | updating the branch cache |
|
239 | updating the branch cache | |
240 | $ HGEDITOR=cat hg graft 4 3 --log --debug |
|
240 | $ HGEDITOR=cat hg graft 4 3 --log --debug | |
241 | scanning for duplicate grafts |
|
241 | scanning for duplicate grafts | |
242 | grafting 4:9c233e8e184d "4" |
|
242 | grafting 4:9c233e8e184d "4" | |
243 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
243 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
244 | on local side: |
|
244 | on local side: | |
245 | src: 'c' -> dst: 'b' |
|
245 | src: 'c' -> dst: 'b' | |
246 | checking for directory renames |
|
246 | checking for directory renames | |
247 | resolving manifests |
|
247 | resolving manifests | |
248 | branchmerge: True, force: True, partial: False |
|
248 | branchmerge: True, force: True, partial: False | |
249 | ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d |
|
249 | ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d | |
250 | d: remote is newer -> g |
|
250 | d: remote is newer -> g | |
251 | getting d |
|
251 | getting d | |
252 | preserving e for resolve of e |
|
252 | preserving e for resolve of e | |
253 | e: versions differ -> m (premerge) |
|
253 | e: versions differ -> m (premerge) | |
254 | picked tool ':merge' for e (binary False symlink False changedelete False) |
|
254 | picked tool ':merge' for e (binary False symlink False changedelete False) | |
255 | merging e |
|
255 | merging e | |
256 | my e@1905859650ec+ other e@9c233e8e184d ancestor e@4c60f11aa304 |
|
256 | my e@1905859650ec+ other e@9c233e8e184d ancestor e@4c60f11aa304 | |
257 | e: versions differ -> m (merge) |
|
257 | e: versions differ -> m (merge) | |
258 | picked tool ':merge' for e (binary False symlink False changedelete False) |
|
258 | picked tool ':merge' for e (binary False symlink False changedelete False) | |
259 | my e@1905859650ec+ other e@9c233e8e184d ancestor e@4c60f11aa304 |
|
259 | my e@1905859650ec+ other e@9c233e8e184d ancestor e@4c60f11aa304 | |
260 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') |
|
260 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') | |
261 | abort: unresolved conflicts, can't continue |
|
261 | abort: unresolved conflicts, can't continue | |
262 | (use 'hg resolve' and 'hg graft --continue') |
|
262 | (use 'hg resolve' and 'hg graft --continue') | |
263 | [1] |
|
263 | [1] | |
264 |
|
264 | |||
265 | Summary should mention graft: |
|
265 | Summary should mention graft: | |
266 |
|
266 | |||
267 | $ hg summary |grep graft |
|
267 | $ hg summary |grep graft | |
268 | commit: 2 modified, 2 unknown, 1 unresolved (graft in progress) |
|
268 | commit: 2 modified, 2 unknown, 1 unresolved (graft in progress) | |
269 |
|
269 | |||
270 | Using status to get more context |
|
270 | Using status to get more context | |
271 |
|
271 | |||
272 | $ hg status --verbose |
|
272 | $ hg status --verbose | |
273 | M d |
|
273 | M d | |
274 | M e |
|
274 | M e | |
275 | ? a.orig |
|
275 | ? a.orig | |
276 | ? e.orig |
|
276 | ? e.orig | |
277 | # The repository is in an unfinished *graft* state. |
|
277 | # The repository is in an unfinished *graft* state. | |
278 |
|
278 | |||
279 | # Unresolved merge conflicts: |
|
279 | # Unresolved merge conflicts: | |
280 | # |
|
280 | # | |
281 | # e |
|
281 | # e | |
282 | # |
|
282 | # | |
283 | # To mark files as resolved: hg resolve --mark FILE |
|
283 | # To mark files as resolved: hg resolve --mark FILE | |
284 |
|
284 | |||
285 | # To continue: hg graft --continue |
|
285 | # To continue: hg graft --continue | |
286 | # To abort: hg graft --abort |
|
286 | # To abort: hg graft --abort | |
287 | # To stop: hg graft --stop |
|
287 | # To stop: hg graft --stop | |
288 |
|
288 | |||
289 |
|
289 | |||
290 | Commit while interrupted should fail: |
|
290 | Commit while interrupted should fail: | |
291 |
|
291 | |||
292 | $ hg ci -m 'commit interrupted graft' |
|
292 | $ hg ci -m 'commit interrupted graft' | |
293 | abort: graft in progress |
|
293 | abort: graft in progress | |
294 | (use 'hg graft --continue' or 'hg graft --stop' to stop) |
|
294 | (use 'hg graft --continue' or 'hg graft --stop' to stop) | |
295 | [20] |
|
295 | [20] | |
296 |
|
296 | |||
297 | Abort the graft and try committing: |
|
297 | Abort the graft and try committing: | |
298 |
|
298 | |||
299 | $ hg up -C . |
|
299 | $ hg up -C . | |
300 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
300 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
301 | $ echo c >> e |
|
301 | $ echo c >> e | |
302 | $ hg ci -mtest |
|
302 | $ hg ci -mtest | |
303 |
|
303 | |||
304 | $ hg strip . --config extensions.strip= |
|
304 | $ hg strip . --config extensions.strip= | |
305 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
305 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
306 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob) |
|
306 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob) | |
307 |
|
307 | |||
308 | Graft again: |
|
308 | Graft again: | |
309 |
|
309 | |||
310 | $ hg graft 1 5 4 3 'merge()' 2 |
|
310 | $ hg graft 1 5 4 3 'merge()' 2 | |
311 | skipping ungraftable merge revision 6 |
|
311 | skipping ungraftable merge revision 6 | |
312 | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) |
|
312 | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) | |
313 | skipping revision 1:5d205f8b35b6 (already grafted to 8:6b9e5368ca4e) |
|
313 | skipping revision 1:5d205f8b35b6 (already grafted to 8:6b9e5368ca4e) | |
314 | skipping revision 5:97f8bfe72746 (already grafted to 9:1905859650ec) |
|
314 | skipping revision 5:97f8bfe72746 (already grafted to 9:1905859650ec) | |
315 | grafting 4:9c233e8e184d "4" |
|
315 | grafting 4:9c233e8e184d "4" | |
316 | merging e |
|
316 | merging e | |
317 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') |
|
317 | warning: conflicts while merging e! (edit, then use 'hg resolve --mark') | |
318 | abort: unresolved conflicts, can't continue |
|
318 | abort: unresolved conflicts, can't continue | |
319 | (use 'hg resolve' and 'hg graft --continue') |
|
319 | (use 'hg resolve' and 'hg graft --continue') | |
320 | [1] |
|
320 | [1] | |
321 |
|
321 | |||
322 | Continue without resolve should fail: |
|
322 | Continue without resolve should fail: | |
323 |
|
323 | |||
324 | $ hg graft -c |
|
324 | $ hg graft -c | |
325 | grafting 4:9c233e8e184d "4" |
|
325 | grafting 4:9c233e8e184d "4" | |
326 | abort: unresolved merge conflicts (see 'hg help resolve') |
|
326 | abort: unresolved merge conflicts (see 'hg help resolve') | |
327 | [20] |
|
327 | [20] | |
328 |
|
328 | |||
329 | Fix up: |
|
329 | Fix up: | |
330 |
|
330 | |||
331 | $ echo b > e |
|
331 | $ echo b > e | |
332 | $ hg resolve -m e |
|
332 | $ hg resolve -m e | |
333 | (no more unresolved files) |
|
333 | (no more unresolved files) | |
334 | continue: hg graft --continue |
|
334 | continue: hg graft --continue | |
335 |
|
335 | |||
336 | Continue with a revision should fail: |
|
336 | Continue with a revision should fail: | |
337 |
|
337 | |||
338 | $ hg graft -c 6 |
|
338 | $ hg graft -c 6 | |
339 | abort: can't specify --continue and revisions |
|
339 | abort: can't specify --continue and revisions | |
340 | [10] |
|
340 | [10] | |
341 |
|
341 | |||
342 | $ hg graft -c -r 6 |
|
342 | $ hg graft -c -r 6 | |
343 | abort: can't specify --continue and revisions |
|
343 | abort: can't specify --continue and revisions | |
344 | [10] |
|
344 | [10] | |
345 |
|
345 | |||
346 | Continue for real, clobber usernames |
|
346 | Continue for real, clobber usernames | |
347 |
|
347 | |||
348 | $ hg graft -c -U |
|
348 | $ hg graft -c -U | |
349 | grafting 4:9c233e8e184d "4" |
|
349 | grafting 4:9c233e8e184d "4" | |
350 | grafting 3:4c60f11aa304 "3" |
|
350 | grafting 3:4c60f11aa304 "3" | |
351 |
|
351 | |||
352 | Compare with original: |
|
352 | Compare with original: | |
353 |
|
353 | |||
354 | $ hg diff -r 6 |
|
354 | $ hg diff -r 6 | |
355 | $ hg status --rev 0:. -C |
|
355 | $ hg status --rev 0:. -C | |
356 | M d |
|
356 | M d | |
357 | M e |
|
357 | M e | |
358 | A b |
|
358 | A b | |
359 | a |
|
359 | a | |
360 | A c |
|
360 | A c | |
361 | a |
|
361 | a | |
362 | R a |
|
362 | R a | |
363 |
|
363 | |||
364 | View graph: |
|
364 | View graph: | |
365 |
|
365 | |||
366 | $ hg log -G --template '{author}@{rev}.{phase}: {desc}\n' |
|
366 | $ hg log -G --template '{author}@{rev}.{phase}: {desc}\n' | |
367 | @ test@11.draft: 3 |
|
367 | @ test@11.draft: 3 | |
368 | | |
|
368 | | | |
369 | o test@10.draft: 4 |
|
369 | o test@10.draft: 4 | |
370 | | |
|
370 | | | |
371 | o test@9.draft: 5 |
|
371 | o test@9.draft: 5 | |
372 | | |
|
372 | | | |
373 | o bar@8.draft: 1 |
|
373 | o bar@8.draft: 1 | |
374 | | |
|
374 | | | |
375 | o foo@7.draft: 2 |
|
375 | o foo@7.draft: 2 | |
376 | | |
|
376 | | | |
377 | | o test@6.secret: 6 |
|
377 | | o test@6.secret: 6 | |
378 | | |\ |
|
378 | | |\ | |
379 | | | o test@5.draft: 5 |
|
379 | | | o test@5.draft: 5 | |
380 | | | | |
|
380 | | | | | |
381 | | o | test@4.draft: 4 |
|
381 | | o | test@4.draft: 4 | |
382 | | |/ |
|
382 | | |/ | |
383 | | o baz@3.public: 3 |
|
383 | | o baz@3.public: 3 | |
384 | | | |
|
384 | | | | |
385 | | o test@2.public: 2 |
|
385 | | o test@2.public: 2 | |
386 | | | |
|
386 | | | | |
387 | | o bar@1.public: 1 |
|
387 | | o bar@1.public: 1 | |
388 | |/ |
|
388 | |/ | |
389 | o test@0.public: 0 |
|
389 | o test@0.public: 0 | |
390 |
|
390 | |||
391 | Graft again onto another branch should preserve the original source |
|
391 | Graft again onto another branch should preserve the original source | |
392 | $ hg up -q 0 |
|
392 | $ hg up -q 0 | |
393 | $ echo 'g'>g |
|
393 | $ echo 'g'>g | |
394 | $ hg add g |
|
394 | $ hg add g | |
395 | $ hg ci -m 7 |
|
395 | $ hg ci -m 7 | |
396 | created new head |
|
396 | created new head | |
397 | $ hg graft 7 |
|
397 | $ hg graft 7 | |
398 | grafting 7:ef0ef43d49e7 "2" |
|
398 | grafting 7:ef0ef43d49e7 "2" | |
399 |
|
399 | |||
400 | $ hg log -r 7 --template '{rev}:{node}\n' |
|
400 | $ hg log -r 7 --template '{rev}:{node}\n' | |
401 | 7:ef0ef43d49e79e81ddafdc7997401ba0041efc82 |
|
401 | 7:ef0ef43d49e79e81ddafdc7997401ba0041efc82 | |
402 | $ hg log -r 2 --template '{rev}:{node}\n' |
|
402 | $ hg log -r 2 --template '{rev}:{node}\n' | |
403 | 2:5c095ad7e90f871700f02dd1fa5012cb4498a2d4 |
|
403 | 2:5c095ad7e90f871700f02dd1fa5012cb4498a2d4 | |
404 |
|
404 | |||
405 | $ hg log --debug -r tip |
|
405 | $ hg log --debug -r tip | |
406 | changeset: 13:7a4785234d87ec1aa420ed6b11afe40fa73e12a9 |
|
406 | changeset: 13:7a4785234d87ec1aa420ed6b11afe40fa73e12a9 | |
407 | tag: tip |
|
407 | tag: tip | |
408 | phase: draft |
|
408 | phase: draft | |
409 | parent: 12:b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f |
|
409 | parent: 12:b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f | |
410 | parent: -1:0000000000000000000000000000000000000000 |
|
410 | parent: -1:0000000000000000000000000000000000000000 | |
411 | manifest: 13:dc313617b8c32457c0d589e0dbbedfe71f3cd637 |
|
411 | manifest: 13:dc313617b8c32457c0d589e0dbbedfe71f3cd637 | |
412 | user: foo |
|
412 | user: foo | |
413 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
413 | date: Thu Jan 01 00:00:00 1970 +0000 | |
414 | files+: b |
|
414 | files+: b | |
415 | files-: a |
|
415 | files-: a | |
416 | extra: branch=default |
|
416 | extra: branch=default | |
417 | extra: intermediate-source=ef0ef43d49e79e81ddafdc7997401ba0041efc82 |
|
417 | extra: intermediate-source=ef0ef43d49e79e81ddafdc7997401ba0041efc82 | |
418 | extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4 |
|
418 | extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4 | |
419 | description: |
|
419 | description: | |
420 | 2 |
|
420 | 2 | |
421 |
|
421 | |||
422 |
|
422 | |||
423 | Disallow grafting an already grafted cset onto its original branch |
|
423 | Disallow grafting an already grafted cset onto its original branch | |
424 | $ hg up -q 6 |
|
424 | $ hg up -q 6 | |
425 | $ hg graft 7 |
|
425 | $ hg graft 7 | |
426 | skipping already grafted revision 7:ef0ef43d49e7 (was grafted from 2:5c095ad7e90f) |
|
426 | skipping already grafted revision 7:ef0ef43d49e7 (was grafted from 2:5c095ad7e90f) | |
427 | [255] |
|
427 | [255] | |
428 |
|
428 | |||
429 | $ hg pdiff --config extensions.extdiff= --patch -r 2 -r 13 |
|
429 | $ hg pdiff --config extensions.extdiff= --patch -r 2 -r 13 | |
430 | --- */hg-5c095ad7e90f.patch * (glob) |
|
430 | --- */hg-5c095ad7e90f.patch * (glob) | |
431 | +++ */hg-7a4785234d87.patch * (glob) |
|
431 | +++ */hg-7a4785234d87.patch * (glob) | |
432 | @@ -1,18 +1,18 @@ |
|
432 | @@ -1,18 +1,18 @@ | |
433 | # HG changeset patch |
|
433 | # HG changeset patch | |
434 | -# User test |
|
434 | -# User test | |
435 | +# User foo |
|
435 | +# User foo | |
436 | # Date 0 0 |
|
436 | # Date 0 0 | |
437 | # Thu Jan 01 00:00:00 1970 +0000 |
|
437 | # Thu Jan 01 00:00:00 1970 +0000 | |
438 | -# Node ID 5c095ad7e90f871700f02dd1fa5012cb4498a2d4 |
|
438 | -# Node ID 5c095ad7e90f871700f02dd1fa5012cb4498a2d4 | |
439 | -# Parent 5d205f8b35b66bc36375c9534ffd3237730e8f04 |
|
439 | -# Parent 5d205f8b35b66bc36375c9534ffd3237730e8f04 | |
440 | +# Node ID 7a4785234d87ec1aa420ed6b11afe40fa73e12a9 |
|
440 | +# Node ID 7a4785234d87ec1aa420ed6b11afe40fa73e12a9 | |
441 | +# Parent b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f |
|
441 | +# Parent b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f | |
442 | 2 |
|
442 | 2 | |
443 |
|
443 | |||
444 | -diff -r 5d205f8b35b6 -r 5c095ad7e90f a |
|
444 | -diff -r 5d205f8b35b6 -r 5c095ad7e90f a | |
445 | +diff -r b592ea63bb0c -r 7a4785234d87 a |
|
445 | +diff -r b592ea63bb0c -r 7a4785234d87 a | |
446 | --- a/a Thu Jan 01 00:00:00 1970 +0000 |
|
446 | --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
447 | +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
447 | +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
448 | @@ -1,1 +0,0 @@ |
|
448 | @@ -1,1 +0,0 @@ | |
449 | --b |
|
449 | --b | |
450 | -diff -r 5d205f8b35b6 -r 5c095ad7e90f b |
|
450 | -diff -r 5d205f8b35b6 -r 5c095ad7e90f b | |
451 | +-a |
|
451 | +-a | |
452 | +diff -r b592ea63bb0c -r 7a4785234d87 b |
|
452 | +diff -r b592ea63bb0c -r 7a4785234d87 b | |
453 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
453 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | |
454 | +++ b/b Thu Jan 01 00:00:00 1970 +0000 |
|
454 | +++ b/b Thu Jan 01 00:00:00 1970 +0000 | |
455 | @@ -0,0 +1,1 @@ |
|
455 | @@ -0,0 +1,1 @@ | |
456 | -+b |
|
456 | -+b | |
457 | ++a |
|
457 | ++a | |
458 | [1] |
|
458 | [1] | |
459 |
|
459 | |||
460 | $ hg pdiff --config extensions.extdiff= --patch -r 2 -r 13 -X . |
|
460 | $ hg pdiff --config extensions.extdiff= --patch -r 2 -r 13 -X . | |
461 | --- */hg-5c095ad7e90f.patch * (glob) |
|
461 | --- */hg-5c095ad7e90f.patch * (glob) | |
462 | +++ */hg-7a4785234d87.patch * (glob) |
|
462 | +++ */hg-7a4785234d87.patch * (glob) | |
463 | @@ -1,8 +1,8 @@ |
|
463 | @@ -1,8 +1,8 @@ | |
464 | # HG changeset patch |
|
464 | # HG changeset patch | |
465 | -# User test |
|
465 | -# User test | |
466 | +# User foo |
|
466 | +# User foo | |
467 | # Date 0 0 |
|
467 | # Date 0 0 | |
468 | # Thu Jan 01 00:00:00 1970 +0000 |
|
468 | # Thu Jan 01 00:00:00 1970 +0000 | |
469 | -# Node ID 5c095ad7e90f871700f02dd1fa5012cb4498a2d4 |
|
469 | -# Node ID 5c095ad7e90f871700f02dd1fa5012cb4498a2d4 | |
470 | -# Parent 5d205f8b35b66bc36375c9534ffd3237730e8f04 |
|
470 | -# Parent 5d205f8b35b66bc36375c9534ffd3237730e8f04 | |
471 | +# Node ID 7a4785234d87ec1aa420ed6b11afe40fa73e12a9 |
|
471 | +# Node ID 7a4785234d87ec1aa420ed6b11afe40fa73e12a9 | |
472 | +# Parent b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f |
|
472 | +# Parent b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f | |
473 | 2 |
|
473 | 2 | |
474 |
|
474 | |||
475 | [1] |
|
475 | [1] | |
476 |
|
476 | |||
477 | Disallow grafting already grafted csets with the same origin onto each other |
|
477 | Disallow grafting already grafted csets with the same origin onto each other | |
478 | $ hg up -q 13 |
|
478 | $ hg up -q 13 | |
479 | $ hg graft 2 |
|
479 | $ hg graft 2 | |
480 | skipping revision 2:5c095ad7e90f (already grafted to 13:7a4785234d87) |
|
480 | skipping revision 2:5c095ad7e90f (already grafted to 13:7a4785234d87) | |
481 | [255] |
|
481 | [255] | |
482 | $ hg graft 7 |
|
482 | $ hg graft 7 | |
483 | skipping already grafted revision 7:ef0ef43d49e7 (13:7a4785234d87 also has origin 2:5c095ad7e90f) |
|
483 | skipping already grafted revision 7:ef0ef43d49e7 (13:7a4785234d87 also has origin 2:5c095ad7e90f) | |
484 | [255] |
|
484 | [255] | |
485 |
|
485 | |||
486 | $ hg up -q 7 |
|
486 | $ hg up -q 7 | |
487 | $ hg graft 2 |
|
487 | $ hg graft 2 | |
488 | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) |
|
488 | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) | |
489 | [255] |
|
489 | [255] | |
490 | $ hg graft tip |
|
490 | $ hg graft tip | |
491 | skipping already grafted revision 13:7a4785234d87 (7:ef0ef43d49e7 also has origin 2:5c095ad7e90f) |
|
491 | skipping already grafted revision 13:7a4785234d87 (7:ef0ef43d49e7 also has origin 2:5c095ad7e90f) | |
492 | [255] |
|
492 | [255] | |
493 |
|
493 | |||
494 | Graft with --log |
|
494 | Graft with --log | |
495 |
|
495 | |||
496 | $ hg up -Cq 1 |
|
496 | $ hg up -Cq 1 | |
497 | $ hg graft 3 --log -u foo |
|
497 | $ hg graft 3 --log -u foo | |
498 | grafting 3:4c60f11aa304 "3" |
|
498 | grafting 3:4c60f11aa304 "3" | |
499 | $ hg log --template '{rev}:{node|short} {parents} {desc}\n' -r tip |
|
499 | $ hg log --template '{rev}:{node|short} {parents} {desc}\n' -r tip | |
500 | 14:0c921c65ef1e 1:5d205f8b35b6 3 |
|
500 | 14:0c921c65ef1e 1:5d205f8b35b6 3 | |
501 | (grafted from 4c60f11aa304a54ae1c199feb94e7fc771e51ed8) |
|
501 | (grafted from 4c60f11aa304a54ae1c199feb94e7fc771e51ed8) | |
502 |
|
502 | |||
503 | Resolve conflicted graft |
|
503 | Resolve conflicted graft | |
504 | $ hg up -q 0 |
|
504 | $ hg up -q 0 | |
505 | $ echo b > a |
|
505 | $ echo b > a | |
506 | $ hg ci -m 8 |
|
506 | $ hg ci -m 8 | |
507 | created new head |
|
507 | created new head | |
508 | $ echo c > a |
|
508 | $ echo c > a | |
509 | $ hg ci -m 9 |
|
509 | $ hg ci -m 9 | |
510 | $ hg graft 1 --tool internal:fail |
|
510 | $ hg graft 1 --tool internal:fail | |
511 | grafting 1:5d205f8b35b6 "1" |
|
511 | grafting 1:5d205f8b35b6 "1" | |
512 | abort: unresolved conflicts, can't continue |
|
512 | abort: unresolved conflicts, can't continue | |
513 | (use 'hg resolve' and 'hg graft --continue') |
|
513 | (use 'hg resolve' and 'hg graft --continue') | |
514 | [1] |
|
514 | [1] | |
515 | $ hg resolve --all |
|
515 | $ hg resolve --all | |
516 | merging a |
|
516 | merging a | |
517 | warning: conflicts while merging a! (edit, then use 'hg resolve --mark') |
|
517 | warning: conflicts while merging a! (edit, then use 'hg resolve --mark') | |
518 | [1] |
|
518 | [1] | |
519 | $ cat a |
|
519 | $ cat a | |
520 | <<<<<<< local: aaa4406d4f0a - test: 9 |
|
520 | <<<<<<< local: aaa4406d4f0a - test: 9 | |
521 | c |
|
521 | c | |
522 | ======= |
|
522 | ======= | |
523 | b |
|
523 | b | |
524 | >>>>>>> graft: 5d205f8b35b6 - bar: 1 |
|
524 | >>>>>>> graft: 5d205f8b35b6 - bar: 1 | |
525 | $ echo b > a |
|
525 | $ echo b > a | |
526 | $ hg resolve -m a |
|
526 | $ hg resolve -m a | |
527 | (no more unresolved files) |
|
527 | (no more unresolved files) | |
528 | continue: hg graft --continue |
|
528 | continue: hg graft --continue | |
529 | $ hg graft -c |
|
529 | $ hg graft -c | |
530 | grafting 1:5d205f8b35b6 "1" |
|
530 | grafting 1:5d205f8b35b6 "1" | |
531 | $ hg export tip --git |
|
531 | $ hg export tip --git | |
532 | # HG changeset patch |
|
532 | # HG changeset patch | |
533 | # User bar |
|
533 | # User bar | |
534 | # Date 0 0 |
|
534 | # Date 0 0 | |
535 | # Thu Jan 01 00:00:00 1970 +0000 |
|
535 | # Thu Jan 01 00:00:00 1970 +0000 | |
536 | # Node ID f67661df0c4804d301f064f332b57e7d5ddaf2be |
|
536 | # Node ID f67661df0c4804d301f064f332b57e7d5ddaf2be | |
537 | # Parent aaa4406d4f0ae9befd6e58c82ec63706460cbca6 |
|
537 | # Parent aaa4406d4f0ae9befd6e58c82ec63706460cbca6 | |
538 | 1 |
|
538 | 1 | |
539 |
|
539 | |||
540 | diff --git a/a b/a |
|
540 | diff --git a/a b/a | |
541 | --- a/a |
|
541 | --- a/a | |
542 | +++ b/a |
|
542 | +++ b/a | |
543 | @@ -1,1 +1,1 @@ |
|
543 | @@ -1,1 +1,1 @@ | |
544 | -c |
|
544 | -c | |
545 | +b |
|
545 | +b | |
546 |
|
546 | |||
547 | Resolve conflicted graft with rename |
|
547 | Resolve conflicted graft with rename | |
548 | $ echo c > a |
|
548 | $ echo c > a | |
549 | $ hg ci -m 10 |
|
549 | $ hg ci -m 10 | |
550 | $ hg graft 2 --tool internal:fail |
|
550 | $ hg graft 2 --tool internal:fail | |
551 | grafting 2:5c095ad7e90f "2" |
|
551 | grafting 2:5c095ad7e90f "2" | |
552 | abort: unresolved conflicts, can't continue |
|
552 | abort: unresolved conflicts, can't continue | |
553 | (use 'hg resolve' and 'hg graft --continue') |
|
553 | (use 'hg resolve' and 'hg graft --continue') | |
554 | [1] |
|
554 | [1] | |
555 | $ hg resolve --all |
|
555 | $ hg resolve --all | |
556 | merging a and b to b |
|
556 | merging a and b to b | |
557 | (no more unresolved files) |
|
557 | (no more unresolved files) | |
558 | continue: hg graft --continue |
|
558 | continue: hg graft --continue | |
559 | $ hg graft -c |
|
559 | $ hg graft -c | |
560 | grafting 2:5c095ad7e90f "2" |
|
560 | grafting 2:5c095ad7e90f "2" | |
561 | $ hg export tip --git |
|
561 | $ hg export tip --git | |
562 | # HG changeset patch |
|
562 | # HG changeset patch | |
563 | # User test |
|
563 | # User test | |
564 | # Date 0 0 |
|
564 | # Date 0 0 | |
565 | # Thu Jan 01 00:00:00 1970 +0000 |
|
565 | # Thu Jan 01 00:00:00 1970 +0000 | |
566 | # Node ID 9627f653b421c61fc1ea4c4e366745070fa3d2bc |
|
566 | # Node ID 9627f653b421c61fc1ea4c4e366745070fa3d2bc | |
567 | # Parent ee295f490a40b97f3d18dd4c4f1c8936c233b612 |
|
567 | # Parent ee295f490a40b97f3d18dd4c4f1c8936c233b612 | |
568 | 2 |
|
568 | 2 | |
569 |
|
569 | |||
570 | diff --git a/a b/b |
|
570 | diff --git a/a b/b | |
571 | rename from a |
|
571 | rename from a | |
572 | rename to b |
|
572 | rename to b | |
573 |
|
573 | |||
574 | Test simple origin(), with and without args |
|
574 | Test simple origin(), with and without args | |
575 | $ hg log -r 'origin()' |
|
575 | $ hg log -r 'origin()' | |
576 | changeset: 1:5d205f8b35b6 |
|
576 | changeset: 1:5d205f8b35b6 | |
577 | user: bar |
|
577 | user: bar | |
578 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
578 | date: Thu Jan 01 00:00:00 1970 +0000 | |
579 | summary: 1 |
|
579 | summary: 1 | |
580 |
|
580 | |||
581 | changeset: 2:5c095ad7e90f |
|
581 | changeset: 2:5c095ad7e90f | |
582 | user: test |
|
582 | user: test | |
583 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
583 | date: Thu Jan 01 00:00:00 1970 +0000 | |
584 | summary: 2 |
|
584 | summary: 2 | |
585 |
|
585 | |||
586 | changeset: 3:4c60f11aa304 |
|
586 | changeset: 3:4c60f11aa304 | |
587 | user: baz |
|
587 | user: baz | |
588 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
588 | date: Thu Jan 01 00:00:00 1970 +0000 | |
589 | summary: 3 |
|
589 | summary: 3 | |
590 |
|
590 | |||
591 | changeset: 4:9c233e8e184d |
|
591 | changeset: 4:9c233e8e184d | |
592 | user: test |
|
592 | user: test | |
593 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
593 | date: Thu Jan 01 00:00:00 1970 +0000 | |
594 | summary: 4 |
|
594 | summary: 4 | |
595 |
|
595 | |||
596 | changeset: 5:97f8bfe72746 |
|
596 | changeset: 5:97f8bfe72746 | |
597 | branch: stable |
|
597 | branch: stable | |
598 | parent: 3:4c60f11aa304 |
|
598 | parent: 3:4c60f11aa304 | |
599 | user: test |
|
599 | user: test | |
600 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
600 | date: Thu Jan 01 00:00:00 1970 +0000 | |
601 | summary: 5 |
|
601 | summary: 5 | |
602 |
|
602 | |||
603 | $ hg log -r 'origin(7)' |
|
603 | $ hg log -r 'origin(7)' | |
604 | changeset: 2:5c095ad7e90f |
|
604 | changeset: 2:5c095ad7e90f | |
605 | user: test |
|
605 | user: test | |
606 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
606 | date: Thu Jan 01 00:00:00 1970 +0000 | |
607 | summary: 2 |
|
607 | summary: 2 | |
608 |
|
608 | |||
609 | Now transplant a graft to test following through copies |
|
609 | Now transplant a graft to test following through copies | |
610 | $ hg up -q 0 |
|
610 | $ hg up -q 0 | |
611 | $ hg branch -q dev |
|
611 | $ hg branch -q dev | |
612 | $ hg ci -qm "dev branch" |
|
612 | $ hg ci -qm "dev branch" | |
613 | $ hg --config extensions.transplant= transplant -q 7 |
|
613 | $ hg --config extensions.transplant= transplant -q 7 | |
614 | $ hg log -r 'origin(.)' |
|
614 | $ hg log -r 'origin(.)' | |
615 | changeset: 2:5c095ad7e90f |
|
615 | changeset: 2:5c095ad7e90f | |
616 | user: test |
|
616 | user: test | |
617 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
617 | date: Thu Jan 01 00:00:00 1970 +0000 | |
618 | summary: 2 |
|
618 | summary: 2 | |
619 |
|
619 | |||
620 | Test that the graft and transplant markers in extra are converted, allowing |
|
620 | Test that the graft and transplant markers in extra are converted, allowing | |
621 | origin() to still work. Note that these recheck the immediately preceeding two |
|
621 | origin() to still work. Note that these recheck the immediately preceeding two | |
622 | tests. |
|
622 | tests. | |
623 | $ hg --quiet --config extensions.convert= --config convert.hg.saverev=True convert . ../converted |
|
623 | $ hg --quiet --config extensions.convert= --config convert.hg.saverev=True convert . ../converted | |
624 |
|
624 | |||
625 | The graft case |
|
625 | The graft case | |
626 | $ hg -R ../converted log -r 7 --template "{rev}: {node}\n{join(extras, '\n')}\n" |
|
626 | $ hg -R ../converted log -r 7 --template "{rev}: {node}\n{join(extras, '\n')}\n" | |
627 | 7: 7ae846e9111fc8f57745634250c7b9ac0a60689b |
|
627 | 7: 7ae846e9111fc8f57745634250c7b9ac0a60689b | |
628 | branch=default |
|
628 | branch=default | |
629 | convert_revision=ef0ef43d49e79e81ddafdc7997401ba0041efc82 |
|
629 | convert_revision=ef0ef43d49e79e81ddafdc7997401ba0041efc82 | |
630 | source=e0213322b2c1a5d5d236c74e79666441bee67a7d |
|
630 | source=e0213322b2c1a5d5d236c74e79666441bee67a7d | |
631 | $ hg -R ../converted log -r 'origin(7)' |
|
631 | $ hg -R ../converted log -r 'origin(7)' | |
632 | changeset: 2:e0213322b2c1 |
|
632 | changeset: 2:e0213322b2c1 | |
633 | user: test |
|
633 | user: test | |
634 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
634 | date: Thu Jan 01 00:00:00 1970 +0000 | |
635 | summary: 2 |
|
635 | summary: 2 | |
636 |
|
636 | |||
637 | Test that template correctly expands more than one 'extra' (issue4362), and that |
|
637 | Test that template correctly expands more than one 'extra' (issue4362), and that | |
638 | 'intermediate-source' is converted. |
|
638 | 'intermediate-source' is converted. | |
639 | $ hg -R ../converted log -r 13 --template "{extras % ' Extra: {extra}\n'}" |
|
639 | $ hg -R ../converted log -r 13 --template "{extras % ' Extra: {extra}\n'}" | |
640 | Extra: branch=default |
|
640 | Extra: branch=default | |
641 | Extra: convert_revision=7a4785234d87ec1aa420ed6b11afe40fa73e12a9 |
|
641 | Extra: convert_revision=7a4785234d87ec1aa420ed6b11afe40fa73e12a9 | |
642 | Extra: intermediate-source=7ae846e9111fc8f57745634250c7b9ac0a60689b |
|
642 | Extra: intermediate-source=7ae846e9111fc8f57745634250c7b9ac0a60689b | |
643 | Extra: source=e0213322b2c1a5d5d236c74e79666441bee67a7d |
|
643 | Extra: source=e0213322b2c1a5d5d236c74e79666441bee67a7d | |
644 |
|
644 | |||
645 | The transplant case |
|
645 | The transplant case | |
646 | $ hg -R ../converted log -r tip --template "{rev}: {node}\n{join(extras, '\n')}\n" |
|
646 | $ hg -R ../converted log -r tip --template "{rev}: {node}\n{join(extras, '\n')}\n" | |
647 | 21: fbb6c5cc81002f2b4b49c9d731404688bcae5ade |
|
647 | 21: fbb6c5cc81002f2b4b49c9d731404688bcae5ade | |
648 | branch=dev |
|
648 | branch=dev | |
649 | convert_revision=7e61b508e709a11d28194a5359bc3532d910af21 |
|
649 | convert_revision=7e61b508e709a11d28194a5359bc3532d910af21 | |
650 | transplant_source=z\xe8F\xe9\x11\x1f\xc8\xf5wEcBP\xc7\xb9\xac\n`h\x9b |
|
650 | transplant_source=z\xe8F\xe9\x11\x1f\xc8\xf5wEcBP\xc7\xb9\xac\n`h\x9b | |
651 | $ hg -R ../converted log -r 'origin(tip)' |
|
651 | $ hg -R ../converted log -r 'origin(tip)' | |
652 | changeset: 2:e0213322b2c1 |
|
652 | changeset: 2:e0213322b2c1 | |
653 | user: test |
|
653 | user: test | |
654 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
654 | date: Thu Jan 01 00:00:00 1970 +0000 | |
655 | summary: 2 |
|
655 | summary: 2 | |
656 |
|
656 | |||
657 |
|
657 | |||
658 | Test simple destination |
|
658 | Test simple destination | |
659 | $ hg log -r 'destination()' |
|
659 | $ hg log -r 'destination()' | |
660 | changeset: 7:ef0ef43d49e7 |
|
660 | changeset: 7:ef0ef43d49e7 | |
661 | parent: 0:68795b066622 |
|
661 | parent: 0:68795b066622 | |
662 | user: foo |
|
662 | user: foo | |
663 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
663 | date: Thu Jan 01 00:00:00 1970 +0000 | |
664 | summary: 2 |
|
664 | summary: 2 | |
665 |
|
665 | |||
666 | changeset: 8:6b9e5368ca4e |
|
666 | changeset: 8:6b9e5368ca4e | |
667 | user: bar |
|
667 | user: bar | |
668 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
668 | date: Thu Jan 01 00:00:00 1970 +0000 | |
669 | summary: 1 |
|
669 | summary: 1 | |
670 |
|
670 | |||
671 | changeset: 9:1905859650ec |
|
671 | changeset: 9:1905859650ec | |
672 | user: test |
|
672 | user: test | |
673 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
673 | date: Thu Jan 01 00:00:00 1970 +0000 | |
674 | summary: 5 |
|
674 | summary: 5 | |
675 |
|
675 | |||
676 | changeset: 10:52dc0b4c6907 |
|
676 | changeset: 10:52dc0b4c6907 | |
677 | user: test |
|
677 | user: test | |
678 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
678 | date: Thu Jan 01 00:00:00 1970 +0000 | |
679 | summary: 4 |
|
679 | summary: 4 | |
680 |
|
680 | |||
681 | changeset: 11:882b35362a6b |
|
681 | changeset: 11:882b35362a6b | |
682 | user: test |
|
682 | user: test | |
683 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
683 | date: Thu Jan 01 00:00:00 1970 +0000 | |
684 | summary: 3 |
|
684 | summary: 3 | |
685 |
|
685 | |||
686 | changeset: 13:7a4785234d87 |
|
686 | changeset: 13:7a4785234d87 | |
687 | user: foo |
|
687 | user: foo | |
688 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
688 | date: Thu Jan 01 00:00:00 1970 +0000 | |
689 | summary: 2 |
|
689 | summary: 2 | |
690 |
|
690 | |||
691 | changeset: 14:0c921c65ef1e |
|
691 | changeset: 14:0c921c65ef1e | |
692 | parent: 1:5d205f8b35b6 |
|
692 | parent: 1:5d205f8b35b6 | |
693 | user: foo |
|
693 | user: foo | |
694 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
694 | date: Thu Jan 01 00:00:00 1970 +0000 | |
695 | summary: 3 |
|
695 | summary: 3 | |
696 |
|
696 | |||
697 | changeset: 17:f67661df0c48 |
|
697 | changeset: 17:f67661df0c48 | |
698 | user: bar |
|
698 | user: bar | |
699 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
699 | date: Thu Jan 01 00:00:00 1970 +0000 | |
700 | summary: 1 |
|
700 | summary: 1 | |
701 |
|
701 | |||
702 | changeset: 19:9627f653b421 |
|
702 | changeset: 19:9627f653b421 | |
703 | user: test |
|
703 | user: test | |
704 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
704 | date: Thu Jan 01 00:00:00 1970 +0000 | |
705 | summary: 2 |
|
705 | summary: 2 | |
706 |
|
706 | |||
707 | changeset: 21:7e61b508e709 |
|
707 | changeset: 21:7e61b508e709 | |
708 | branch: dev |
|
708 | branch: dev | |
709 | tag: tip |
|
709 | tag: tip | |
710 | user: foo |
|
710 | user: foo | |
711 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
711 | date: Thu Jan 01 00:00:00 1970 +0000 | |
712 | summary: 2 |
|
712 | summary: 2 | |
713 |
|
713 | |||
714 | $ hg log -r 'destination(2)' |
|
714 | $ hg log -r 'destination(2)' | |
715 | changeset: 7:ef0ef43d49e7 |
|
715 | changeset: 7:ef0ef43d49e7 | |
716 | parent: 0:68795b066622 |
|
716 | parent: 0:68795b066622 | |
717 | user: foo |
|
717 | user: foo | |
718 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
718 | date: Thu Jan 01 00:00:00 1970 +0000 | |
719 | summary: 2 |
|
719 | summary: 2 | |
720 |
|
720 | |||
721 | changeset: 13:7a4785234d87 |
|
721 | changeset: 13:7a4785234d87 | |
722 | user: foo |
|
722 | user: foo | |
723 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
723 | date: Thu Jan 01 00:00:00 1970 +0000 | |
724 | summary: 2 |
|
724 | summary: 2 | |
725 |
|
725 | |||
726 | changeset: 19:9627f653b421 |
|
726 | changeset: 19:9627f653b421 | |
727 | user: test |
|
727 | user: test | |
728 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
728 | date: Thu Jan 01 00:00:00 1970 +0000 | |
729 | summary: 2 |
|
729 | summary: 2 | |
730 |
|
730 | |||
731 | changeset: 21:7e61b508e709 |
|
731 | changeset: 21:7e61b508e709 | |
732 | branch: dev |
|
732 | branch: dev | |
733 | tag: tip |
|
733 | tag: tip | |
734 | user: foo |
|
734 | user: foo | |
735 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
735 | date: Thu Jan 01 00:00:00 1970 +0000 | |
736 | summary: 2 |
|
736 | summary: 2 | |
737 |
|
737 | |||
738 | Transplants of grafts can find a destination... |
|
738 | Transplants of grafts can find a destination... | |
739 | $ hg log -r 'destination(7)' |
|
739 | $ hg log -r 'destination(7)' | |
740 | changeset: 21:7e61b508e709 |
|
740 | changeset: 21:7e61b508e709 | |
741 | branch: dev |
|
741 | branch: dev | |
742 | tag: tip |
|
742 | tag: tip | |
743 | user: foo |
|
743 | user: foo | |
744 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
744 | date: Thu Jan 01 00:00:00 1970 +0000 | |
745 | summary: 2 |
|
745 | summary: 2 | |
746 |
|
746 | |||
747 | ... grafts of grafts unfortunately can't |
|
747 | ... grafts of grafts unfortunately can't | |
748 | $ hg graft -q 13 --debug |
|
748 | $ hg graft -q 13 --debug | |
749 | scanning for duplicate grafts |
|
749 | scanning for duplicate grafts | |
750 | grafting 13:7a4785234d87 "2" |
|
750 | grafting 13:7a4785234d87 "2" | |
751 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
751 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
752 | on local side: |
|
752 | on local side: | |
753 | src: 'a' -> dst: 'b' * |
|
753 | src: 'a' -> dst: 'b' * | |
754 | on remote side: |
|
754 | on remote side: | |
755 | src: 'a' -> dst: 'b' * |
|
755 | src: 'a' -> dst: 'b' * | |
756 | checking for directory renames |
|
756 | checking for directory renames | |
757 | resolving manifests |
|
757 | resolving manifests | |
758 | branchmerge: True, force: True, partial: False |
|
758 | branchmerge: True, force: True, partial: False | |
759 | ancestor: b592ea63bb0c, local: 7e61b508e709+, remote: 7a4785234d87 |
|
759 | ancestor: b592ea63bb0c, local: 7e61b508e709+, remote: 7a4785234d87 | |
760 | starting 4 threads for background file closing (?) |
|
760 | starting 4 threads for background file closing (?) | |
761 | nothing to commit, clearing merge state |
|
761 | nothing to commit, clearing merge state | |
762 | note: graft of 13:7a4785234d87 created no changes to commit |
|
762 | note: graft of 13:7a4785234d87 created no changes to commit | |
763 | $ hg log -r 'destination(13)' |
|
763 | $ hg log -r 'destination(13)' | |
764 | All copies of a cset |
|
764 | All copies of a cset | |
765 | $ hg log -r 'origin(13) or destination(origin(13))' |
|
765 | $ hg log -r 'origin(13) or destination(origin(13))' | |
766 | changeset: 2:5c095ad7e90f |
|
766 | changeset: 2:5c095ad7e90f | |
767 | user: test |
|
767 | user: test | |
768 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
768 | date: Thu Jan 01 00:00:00 1970 +0000 | |
769 | summary: 2 |
|
769 | summary: 2 | |
770 |
|
770 | |||
771 | changeset: 7:ef0ef43d49e7 |
|
771 | changeset: 7:ef0ef43d49e7 | |
772 | parent: 0:68795b066622 |
|
772 | parent: 0:68795b066622 | |
773 | user: foo |
|
773 | user: foo | |
774 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
774 | date: Thu Jan 01 00:00:00 1970 +0000 | |
775 | summary: 2 |
|
775 | summary: 2 | |
776 |
|
776 | |||
777 | changeset: 13:7a4785234d87 |
|
777 | changeset: 13:7a4785234d87 | |
778 | user: foo |
|
778 | user: foo | |
779 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
779 | date: Thu Jan 01 00:00:00 1970 +0000 | |
780 | summary: 2 |
|
780 | summary: 2 | |
781 |
|
781 | |||
782 | changeset: 19:9627f653b421 |
|
782 | changeset: 19:9627f653b421 | |
783 | user: test |
|
783 | user: test | |
784 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
784 | date: Thu Jan 01 00:00:00 1970 +0000 | |
785 | summary: 2 |
|
785 | summary: 2 | |
786 |
|
786 | |||
787 | changeset: 21:7e61b508e709 |
|
787 | changeset: 21:7e61b508e709 | |
788 | branch: dev |
|
788 | branch: dev | |
789 | tag: tip |
|
789 | tag: tip | |
790 | user: foo |
|
790 | user: foo | |
791 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
791 | date: Thu Jan 01 00:00:00 1970 +0000 | |
792 | summary: 2 |
|
792 | summary: 2 | |
793 |
|
793 | |||
794 |
|
794 | |||
795 | graft skips ancestors |
|
795 | graft skips ancestors | |
796 |
|
796 | |||
797 | $ hg graft 21 3 |
|
797 | $ hg graft 21 3 | |
798 | skipping ancestor revision 21:7e61b508e709 |
|
798 | skipping ancestor revision 21:7e61b508e709 | |
799 | grafting 3:4c60f11aa304 "3" |
|
799 | grafting 3:4c60f11aa304 "3" | |
800 | merging b and c to c |
|
800 | merging b and c to c | |
801 |
|
801 | |||
802 | graft with --force (still doesn't graft merges) |
|
802 | graft with --force (still doesn't graft merges) | |
803 |
|
803 | |||
804 | $ hg graft 19 0 6 |
|
804 | $ hg graft 19 0 6 | |
805 | skipping ungraftable merge revision 6 |
|
805 | skipping ungraftable merge revision 6 | |
806 | skipping ancestor revision 0:68795b066622 |
|
806 | skipping ancestor revision 0:68795b066622 | |
807 | grafting 19:9627f653b421 "2" |
|
807 | grafting 19:9627f653b421 "2" | |
808 | merging b |
|
808 | merging b | |
809 | note: graft of 19:9627f653b421 created no changes to commit |
|
809 | note: graft of 19:9627f653b421 created no changes to commit | |
810 | $ hg graft 19 0 6 --force |
|
810 | $ hg graft 19 0 6 --force | |
811 | skipping ungraftable merge revision 6 |
|
811 | skipping ungraftable merge revision 6 | |
812 | grafting 19:9627f653b421 "2" |
|
812 | grafting 19:9627f653b421 "2" | |
813 | merging b |
|
813 | merging b | |
814 | note: graft of 19:9627f653b421 created no changes to commit |
|
814 | note: graft of 19:9627f653b421 created no changes to commit | |
815 | grafting 0:68795b066622 "0" |
|
815 | grafting 0:68795b066622 "0" | |
816 |
|
816 | |||
817 | graft --force after backout. Do the backout with graft too, to make |
|
817 | graft --force after backout. Do the backout with graft too, to make | |
818 | sure we support issue6248. |
|
818 | sure we support issue6248. | |
819 |
|
819 | |||
820 | $ echo abc > a |
|
820 | $ echo abc > a | |
821 | $ hg ci -m 24 |
|
821 | $ hg ci -m 24 | |
822 | $ hg graft --base . -r ".^" --no-commit |
|
822 | $ hg graft --base . -r ".^" --no-commit | |
823 | grafting 23:b1cac6de36a9 "0" |
|
823 | grafting 23:b1cac6de36a9 "0" | |
824 | $ hg commit -m 'Backed out changeset 2e7ea477be26' |
|
824 | $ hg commit -m 'Backed out changeset 2e7ea477be26' | |
825 | $ hg graft 24 |
|
825 | $ hg graft 24 | |
826 | skipping ancestor revision 24:2e7ea477be26 |
|
826 | skipping ancestor revision 24:2e7ea477be26 | |
827 | [255] |
|
827 | [255] | |
828 | $ hg graft 24 --force |
|
828 | $ hg graft 24 --force | |
829 | grafting 24:2e7ea477be26 "24" |
|
829 | grafting 24:2e7ea477be26 "24" | |
830 | merging a |
|
830 | merging a | |
831 | $ cat a |
|
831 | $ cat a | |
832 | abc |
|
832 | abc | |
833 |
|
833 | |||
834 | graft --continue after --force |
|
834 | graft --continue after --force | |
835 |
|
835 | |||
836 | $ echo def > a |
|
836 | $ echo def > a | |
837 | $ hg ci -m 27 |
|
837 | $ hg ci -m 27 | |
838 | $ hg graft 24 --force --tool internal:fail |
|
838 | $ hg graft 24 --force --tool internal:fail | |
839 | grafting 24:2e7ea477be26 "24" |
|
839 | grafting 24:2e7ea477be26 "24" | |
840 | abort: unresolved conflicts, can't continue |
|
840 | abort: unresolved conflicts, can't continue | |
841 | (use 'hg resolve' and 'hg graft --continue') |
|
841 | (use 'hg resolve' and 'hg graft --continue') | |
842 | [1] |
|
842 | [1] | |
843 | $ hg resolve --all |
|
843 | $ hg resolve --all | |
844 | merging a |
|
844 | merging a | |
845 | warning: conflicts while merging a! (edit, then use 'hg resolve --mark') |
|
845 | warning: conflicts while merging a! (edit, then use 'hg resolve --mark') | |
846 | [1] |
|
846 | [1] | |
847 | $ echo abc > a |
|
847 | $ echo abc > a | |
848 | $ hg resolve -m a |
|
848 | $ hg resolve -m a | |
849 | (no more unresolved files) |
|
849 | (no more unresolved files) | |
850 | continue: hg graft --continue |
|
850 | continue: hg graft --continue | |
851 | $ hg graft -c |
|
851 | $ hg graft -c | |
852 | grafting 24:2e7ea477be26 "24" |
|
852 | grafting 24:2e7ea477be26 "24" | |
853 | $ cat a |
|
853 | $ cat a | |
854 | abc |
|
854 | abc | |
855 |
|
855 | |||
856 | graft --continue after --base with conflits |
|
856 | graft --continue after --base with conflits | |
857 |
|
857 | |||
858 | $ echo base > d |
|
858 | $ echo base > d | |
859 | $ hg ci -m _ |
|
859 | $ hg ci -m _ | |
860 | $ hg graft -r 6 |
|
860 | $ hg graft -r 6 | |
861 | skipping ungraftable merge revision 6 |
|
861 | skipping ungraftable merge revision 6 | |
862 | [255] |
|
862 | [255] | |
863 | $ hg graft -r 6 --base 5 |
|
863 | $ hg graft -r 6 --base 5 | |
864 | grafting 6:25a2b029d3ae "6" |
|
864 | grafting 6:25a2b029d3ae "6" | |
865 | merging d |
|
865 | merging d | |
866 | merging e |
|
866 | merging e | |
867 | warning: conflicts while merging d! (edit, then use 'hg resolve --mark') |
|
867 | warning: conflicts while merging d! (edit, then use 'hg resolve --mark') | |
868 | abort: unresolved conflicts, can't continue |
|
868 | abort: unresolved conflicts, can't continue | |
869 | (use 'hg resolve' and 'hg graft --continue') |
|
869 | (use 'hg resolve' and 'hg graft --continue') | |
870 | [1] |
|
870 | [1] | |
871 | $ echo a > d && hg resolve -qm |
|
871 | $ echo a > d && hg resolve -qm | |
872 | continue: hg graft --continue |
|
872 | continue: hg graft --continue | |
873 | $ hg graft --continue |
|
873 | $ hg graft --continue | |
874 | grafting 6:25a2b029d3ae "6" |
|
874 | grafting 6:25a2b029d3ae "6" | |
875 |
|
875 | |||
876 | Continue testing same origin policy, using revision numbers from test above |
|
876 | Continue testing same origin policy, using revision numbers from test above | |
877 | but do some destructive editing of the repo: |
|
877 | but do some destructive editing of the repo: | |
878 |
|
878 | |||
879 | $ hg up -qC 7 |
|
879 | $ hg up -qC 7 | |
880 | $ hg tag -l -r 13 tmp |
|
880 | $ hg tag -l -r 13 tmp | |
881 | $ hg --config extensions.strip= strip 2 |
|
881 | $ hg --config extensions.strip= strip 2 | |
882 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/5c095ad7e90f-d323a1e4-backup.hg |
|
882 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/5c095ad7e90f-d323a1e4-backup.hg | |
883 | $ hg graft tmp |
|
883 | $ hg graft tmp | |
884 | skipping already grafted revision 8:7a4785234d87 (2:ef0ef43d49e7 also has unknown origin 5c095ad7e90f) |
|
884 | skipping already grafted revision 8:7a4785234d87 (2:ef0ef43d49e7 also has unknown origin 5c095ad7e90f) | |
885 | [255] |
|
885 | [255] | |
886 |
|
886 | |||
887 | Empty graft |
|
887 | Empty graft | |
888 |
|
888 | |||
889 | $ hg up -qr 22 |
|
889 | $ hg up -qr 22 | |
890 | $ hg tag -f something |
|
890 | $ hg tag -f something | |
891 | $ hg graft -qr 23 |
|
891 | $ hg graft -qr 23 | |
892 | $ hg graft -f 23 |
|
892 | $ hg graft -f 23 | |
893 | grafting 23:72d9c7c75bcc "24" |
|
893 | grafting 23:72d9c7c75bcc "24" | |
894 | note: graft of 23:72d9c7c75bcc created no changes to commit |
|
894 | note: graft of 23:72d9c7c75bcc created no changes to commit | |
895 |
|
895 | |||
896 | $ cd .. |
|
896 | $ cd .. | |
897 |
|
897 | |||
898 | Graft to duplicate a commit |
|
898 | Graft to duplicate a commit | |
899 |
|
899 | |||
900 | $ hg init graftsibling |
|
900 | $ hg init graftsibling | |
901 | $ cd graftsibling |
|
901 | $ cd graftsibling | |
902 | $ touch a |
|
902 | $ touch a | |
903 | $ hg commit -qAm a |
|
903 | $ hg commit -qAm a | |
904 | $ touch b |
|
904 | $ touch b | |
905 | $ hg commit -qAm b |
|
905 | $ hg commit -qAm b | |
906 | $ hg log -G -T '{rev}\n' |
|
906 | $ hg log -G -T '{rev}\n' | |
907 | @ 1 |
|
907 | @ 1 | |
908 | | |
|
908 | | | |
909 | o 0 |
|
909 | o 0 | |
910 |
|
910 | |||
911 | $ hg up -q 0 |
|
911 | $ hg up -q 0 | |
912 | $ hg graft -r 1 |
|
912 | $ hg graft -r 1 | |
913 | grafting 1:0e067c57feba "b" (tip) |
|
913 | grafting 1:0e067c57feba "b" (tip) | |
914 | $ hg log -G -T '{rev}\n' |
|
914 | $ hg log -G -T '{rev}\n' | |
915 | @ 2 |
|
915 | @ 2 | |
916 | | |
|
916 | | | |
917 | | o 1 |
|
917 | | o 1 | |
918 | |/ |
|
918 | |/ | |
919 | o 0 |
|
919 | o 0 | |
920 |
|
920 | |||
921 | Graft to duplicate a commit twice |
|
921 | Graft to duplicate a commit twice | |
922 |
|
922 | |||
923 | $ hg up -q 0 |
|
923 | $ hg up -q 0 | |
924 | $ hg graft -r 2 |
|
924 | $ hg graft -r 2 | |
925 | grafting 2:044ec77f6389 "b" (tip) |
|
925 | grafting 2:044ec77f6389 "b" (tip) | |
926 | $ hg log -G -T '{rev}\n' |
|
926 | $ hg log -G -T '{rev}\n' | |
927 | @ 3 |
|
927 | @ 3 | |
928 | | |
|
928 | | | |
929 | | o 2 |
|
929 | | o 2 | |
930 | |/ |
|
930 | |/ | |
931 | | o 1 |
|
931 | | o 1 | |
932 | |/ |
|
932 | |/ | |
933 | o 0 |
|
933 | o 0 | |
934 |
|
934 |
@@ -1,99 +1,99 b'' | |||||
1 | https://bz.mercurial-scm.org/672 |
|
1 | https://bz.mercurial-scm.org/672 | |
2 |
|
2 | |||
3 | # 0-2-4 |
|
3 | # 0-2-4 | |
4 | # \ \ \ |
|
4 | # \ \ \ | |
5 | # 1-3-5 |
|
5 | # 1-3-5 | |
6 | # |
|
6 | # | |
7 | # rename in #1, content change in #4. |
|
7 | # rename in #1, content change in #4. | |
8 |
|
8 | |||
9 | $ hg init |
|
9 | $ hg init | |
10 |
|
10 | |||
11 | $ touch 1 |
|
11 | $ touch 1 | |
12 | $ touch 2 |
|
12 | $ touch 2 | |
13 | $ hg commit -Am init # 0 |
|
13 | $ hg commit -Am init # 0 | |
14 | adding 1 |
|
14 | adding 1 | |
15 | adding 2 |
|
15 | adding 2 | |
16 |
|
16 | |||
17 | $ hg rename 1 1a |
|
17 | $ hg rename 1 1a | |
18 | $ hg commit -m rename # 1 |
|
18 | $ hg commit -m rename # 1 | |
19 |
|
19 | |||
20 | $ hg co -C 0 |
|
20 | $ hg co -C 0 | |
21 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
21 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
22 |
|
22 | |||
23 | $ echo unrelated >> 2 |
|
23 | $ echo unrelated >> 2 | |
24 | $ hg ci -m unrelated1 # 2 |
|
24 | $ hg ci -m unrelated1 # 2 | |
25 | created new head |
|
25 | created new head | |
26 |
|
26 | |||
27 | $ hg merge --debug 1 |
|
27 | $ hg merge --debug 1 | |
28 | unmatched files in other: |
|
28 | unmatched files in other: | |
29 | 1a |
|
29 | 1a | |
30 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
30 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
31 | on remote side: |
|
31 | on remote side: | |
32 | src: '1' -> dst: '1a' |
|
32 | src: '1' -> dst: '1a' | |
33 | checking for directory renames |
|
33 | checking for directory renames | |
34 | resolving manifests |
|
34 | resolving manifests | |
35 | branchmerge: True, force: False, partial: False |
|
35 | branchmerge: True, force: False, partial: False | |
36 | ancestor: 81f4b099af3d, local: c64f439569a9+, remote: c12dcd37c90a |
|
36 | ancestor: 81f4b099af3d, local: c64f439569a9+, remote: c12dcd37c90a | |
37 | 1: other deleted -> r |
|
37 | 1: other deleted -> r | |
38 | removing 1 |
|
38 | removing 1 | |
39 | 1a: remote created -> g |
|
39 | 1a: remote created -> g | |
40 | getting 1a |
|
40 | getting 1a | |
41 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
41 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
42 | (branch merge, don't forget to commit) |
|
42 | (branch merge, don't forget to commit) | |
43 |
|
43 | |||
44 | $ hg ci -m merge1 # 3 |
|
44 | $ hg ci -m merge1 # 3 | |
45 |
|
45 | |||
46 | $ hg co -C 2 |
|
46 | $ hg co -C 2 | |
47 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
47 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
48 |
|
48 | |||
49 | $ echo hello >> 1 |
|
49 | $ echo hello >> 1 | |
50 | $ hg ci -m unrelated2 # 4 |
|
50 | $ hg ci -m unrelated2 # 4 | |
51 | created new head |
|
51 | created new head | |
52 |
|
52 | |||
53 | $ hg co -C 3 |
|
53 | $ hg co -C 3 | |
54 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
54 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
55 |
|
55 | |||
56 | $ hg merge -y --debug 4 |
|
56 | $ hg merge -y --debug 4 | |
57 | unmatched files in local: |
|
57 | unmatched files in local: | |
58 | 1a |
|
58 | 1a | |
59 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
59 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
60 | on local side: |
|
60 | on local side: | |
61 | src: '1' -> dst: '1a' * |
|
61 | src: '1' -> dst: '1a' * | |
62 | checking for directory renames |
|
62 | checking for directory renames | |
63 | resolving manifests |
|
63 | resolving manifests | |
64 | branchmerge: True, force: False, partial: False |
|
64 | branchmerge: True, force: False, partial: False | |
65 | ancestor: c64f439569a9, local: f4a9cff3cd0b+, remote: 746e9549ea96 |
|
65 | ancestor: c64f439569a9, local: f4a9cff3cd0b+, remote: 746e9549ea96 | |
|
66 | starting 4 threads for background file closing (?) | |||
66 | preserving 1a for resolve of 1a |
|
67 | preserving 1a for resolve of 1a | |
67 | starting 4 threads for background file closing (?) |
|
|||
68 | 1a: local copied/moved from 1 -> m (premerge) |
|
68 | 1a: local copied/moved from 1 -> m (premerge) | |
69 | picked tool ':merge' for 1a (binary False symlink False changedelete False) |
|
69 | picked tool ':merge' for 1a (binary False symlink False changedelete False) | |
70 | merging 1a and 1 to 1a |
|
70 | merging 1a and 1 to 1a | |
71 | my 1a@f4a9cff3cd0b+ other 1@746e9549ea96 ancestor 1@c64f439569a9 |
|
71 | my 1a@f4a9cff3cd0b+ other 1@746e9549ea96 ancestor 1@c64f439569a9 | |
72 | premerge successful |
|
72 | premerge successful | |
73 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
73 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
74 | (branch merge, don't forget to commit) |
|
74 | (branch merge, don't forget to commit) | |
75 |
|
75 | |||
76 | $ hg co -C 4 |
|
76 | $ hg co -C 4 | |
77 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
77 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
78 |
|
78 | |||
79 | $ hg merge -y --debug 3 |
|
79 | $ hg merge -y --debug 3 | |
80 | unmatched files in other: |
|
80 | unmatched files in other: | |
81 | 1a |
|
81 | 1a | |
82 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
82 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
83 | on remote side: |
|
83 | on remote side: | |
84 | src: '1' -> dst: '1a' * |
|
84 | src: '1' -> dst: '1a' * | |
85 | checking for directory renames |
|
85 | checking for directory renames | |
86 | resolving manifests |
|
86 | resolving manifests | |
87 | branchmerge: True, force: False, partial: False |
|
87 | branchmerge: True, force: False, partial: False | |
88 | ancestor: c64f439569a9, local: 746e9549ea96+, remote: f4a9cff3cd0b |
|
88 | ancestor: c64f439569a9, local: 746e9549ea96+, remote: f4a9cff3cd0b | |
|
89 | starting 4 threads for background file closing (?) | |||
89 | preserving 1 for resolve of 1a |
|
90 | preserving 1 for resolve of 1a | |
90 | removing 1 |
|
91 | removing 1 | |
91 | starting 4 threads for background file closing (?) |
|
|||
92 | 1a: remote moved from 1 -> m (premerge) |
|
92 | 1a: remote moved from 1 -> m (premerge) | |
93 | picked tool ':merge' for 1a (binary False symlink False changedelete False) |
|
93 | picked tool ':merge' for 1a (binary False symlink False changedelete False) | |
94 | merging 1 and 1a to 1a |
|
94 | merging 1 and 1a to 1a | |
95 | my 1a@746e9549ea96+ other 1a@f4a9cff3cd0b ancestor 1@c64f439569a9 |
|
95 | my 1a@746e9549ea96+ other 1a@f4a9cff3cd0b ancestor 1@c64f439569a9 | |
96 | premerge successful |
|
96 | premerge successful | |
97 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
97 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
98 | (branch merge, don't forget to commit) |
|
98 | (branch merge, don't forget to commit) | |
99 |
|
99 |
@@ -1,183 +1,183 b'' | |||||
1 | Check that renames are correctly saved by a commit after a merge |
|
1 | Check that renames are correctly saved by a commit after a merge | |
2 |
|
2 | |||
3 | Test with the merge on 3 having the rename on the local parent |
|
3 | Test with the merge on 3 having the rename on the local parent | |
4 |
|
4 | |||
5 | $ hg init a |
|
5 | $ hg init a | |
6 | $ cd a |
|
6 | $ cd a | |
7 |
|
7 | |||
8 | $ echo line1 > foo |
|
8 | $ echo line1 > foo | |
9 | $ hg add foo |
|
9 | $ hg add foo | |
10 | $ hg ci -m '0: add foo' |
|
10 | $ hg ci -m '0: add foo' | |
11 |
|
11 | |||
12 | $ echo line2 >> foo |
|
12 | $ echo line2 >> foo | |
13 | $ hg ci -m '1: change foo' |
|
13 | $ hg ci -m '1: change foo' | |
14 |
|
14 | |||
15 | $ hg up -C 0 |
|
15 | $ hg up -C 0 | |
16 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
16 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
17 |
|
17 | |||
18 | $ hg mv foo bar |
|
18 | $ hg mv foo bar | |
19 | $ rm bar |
|
19 | $ rm bar | |
20 | $ echo line0 > bar |
|
20 | $ echo line0 > bar | |
21 | $ echo line1 >> bar |
|
21 | $ echo line1 >> bar | |
22 | $ hg ci -m '2: mv foo bar; change bar' |
|
22 | $ hg ci -m '2: mv foo bar; change bar' | |
23 | created new head |
|
23 | created new head | |
24 |
|
24 | |||
25 | $ hg merge 1 |
|
25 | $ hg merge 1 | |
26 | merging bar and foo to bar |
|
26 | merging bar and foo to bar | |
27 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
27 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
28 | (branch merge, don't forget to commit) |
|
28 | (branch merge, don't forget to commit) | |
29 |
|
29 | |||
30 | $ cat bar |
|
30 | $ cat bar | |
31 | line0 |
|
31 | line0 | |
32 | line1 |
|
32 | line1 | |
33 | line2 |
|
33 | line2 | |
34 |
|
34 | |||
35 | $ hg ci -m '3: merge with local rename' |
|
35 | $ hg ci -m '3: merge with local rename' | |
36 |
|
36 | |||
37 | $ hg debugindex bar |
|
37 | $ hg debugindex bar | |
38 | rev linkrev nodeid p1 p2 |
|
38 | rev linkrev nodeid p1 p2 | |
39 | 0 2 d35118874825 000000000000 000000000000 |
|
39 | 0 2 d35118874825 000000000000 000000000000 | |
40 | 1 3 5345f5ab8abd 000000000000 d35118874825 |
|
40 | 1 3 5345f5ab8abd 000000000000 d35118874825 | |
41 |
|
41 | |||
42 | $ hg debugrename bar |
|
42 | $ hg debugrename bar | |
43 | bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2 |
|
43 | bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2 | |
44 |
|
44 | |||
45 | $ hg debugindex foo |
|
45 | $ hg debugindex foo | |
46 | rev linkrev nodeid p1 p2 |
|
46 | rev linkrev nodeid p1 p2 | |
47 | 0 0 690b295714ae 000000000000 000000000000 |
|
47 | 0 0 690b295714ae 000000000000 000000000000 | |
48 | 1 1 9e25c27b8757 690b295714ae 000000000000 |
|
48 | 1 1 9e25c27b8757 690b295714ae 000000000000 | |
49 |
|
49 | |||
50 |
|
50 | |||
51 | Revert the content change from rev 2: |
|
51 | Revert the content change from rev 2: | |
52 |
|
52 | |||
53 | $ hg up -C 2 |
|
53 | $ hg up -C 2 | |
54 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
54 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
55 | $ rm bar |
|
55 | $ rm bar | |
56 | $ echo line1 > bar |
|
56 | $ echo line1 > bar | |
57 | $ hg ci -m '4: revert content change from rev 2' |
|
57 | $ hg ci -m '4: revert content change from rev 2' | |
58 | created new head |
|
58 | created new head | |
59 |
|
59 | |||
60 | $ hg log --template '{rev}:{node|short} {parents}\n' |
|
60 | $ hg log --template '{rev}:{node|short} {parents}\n' | |
61 | 4:2263c1be0967 2:0f2ff26688b9 |
|
61 | 4:2263c1be0967 2:0f2ff26688b9 | |
62 | 3:0555950ead28 2:0f2ff26688b9 1:5cd961e4045d |
|
62 | 3:0555950ead28 2:0f2ff26688b9 1:5cd961e4045d | |
63 | 2:0f2ff26688b9 0:2665aaee66e9 |
|
63 | 2:0f2ff26688b9 0:2665aaee66e9 | |
64 | 1:5cd961e4045d |
|
64 | 1:5cd961e4045d | |
65 | 0:2665aaee66e9 |
|
65 | 0:2665aaee66e9 | |
66 |
|
66 | |||
67 | This should use bar@rev2 as the ancestor: |
|
67 | This should use bar@rev2 as the ancestor: | |
68 |
|
68 | |||
69 | $ hg --debug merge 3 |
|
69 | $ hg --debug merge 3 | |
70 | resolving manifests |
|
70 | resolving manifests | |
71 | branchmerge: True, force: False, partial: False |
|
71 | branchmerge: True, force: False, partial: False | |
72 | ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 0555950ead28 |
|
72 | ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 0555950ead28 | |
|
73 | starting 4 threads for background file closing (?) | |||
73 | preserving bar for resolve of bar |
|
74 | preserving bar for resolve of bar | |
74 | starting 4 threads for background file closing (?) |
|
|||
75 | bar: versions differ -> m (premerge) |
|
75 | bar: versions differ -> m (premerge) | |
76 | picked tool ':merge' for bar (binary False symlink False changedelete False) |
|
76 | picked tool ':merge' for bar (binary False symlink False changedelete False) | |
77 | merging bar |
|
77 | merging bar | |
78 | my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9 |
|
78 | my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9 | |
79 | premerge successful |
|
79 | premerge successful | |
80 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
80 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
81 | (branch merge, don't forget to commit) |
|
81 | (branch merge, don't forget to commit) | |
82 |
|
82 | |||
83 | $ cat bar |
|
83 | $ cat bar | |
84 | line1 |
|
84 | line1 | |
85 | line2 |
|
85 | line2 | |
86 |
|
86 | |||
87 | $ hg ci -m '5: merge' |
|
87 | $ hg ci -m '5: merge' | |
88 |
|
88 | |||
89 | $ hg debugindex bar |
|
89 | $ hg debugindex bar | |
90 | rev linkrev nodeid p1 p2 |
|
90 | rev linkrev nodeid p1 p2 | |
91 | 0 2 d35118874825 000000000000 000000000000 |
|
91 | 0 2 d35118874825 000000000000 000000000000 | |
92 | 1 3 5345f5ab8abd 000000000000 d35118874825 |
|
92 | 1 3 5345f5ab8abd 000000000000 d35118874825 | |
93 | 2 4 ff4b45017382 d35118874825 000000000000 |
|
93 | 2 4 ff4b45017382 d35118874825 000000000000 | |
94 | 3 5 3701b4893544 ff4b45017382 5345f5ab8abd |
|
94 | 3 5 3701b4893544 ff4b45017382 5345f5ab8abd | |
95 |
|
95 | |||
96 |
|
96 | |||
97 | Same thing, but with the merge on 3 having the rename |
|
97 | Same thing, but with the merge on 3 having the rename | |
98 | on the remote parent: |
|
98 | on the remote parent: | |
99 |
|
99 | |||
100 | $ cd .. |
|
100 | $ cd .. | |
101 | $ hg clone -U -r 1 -r 2 a b |
|
101 | $ hg clone -U -r 1 -r 2 a b | |
102 | adding changesets |
|
102 | adding changesets | |
103 | adding manifests |
|
103 | adding manifests | |
104 | adding file changes |
|
104 | adding file changes | |
105 | added 3 changesets with 3 changes to 2 files (+1 heads) |
|
105 | added 3 changesets with 3 changes to 2 files (+1 heads) | |
106 | new changesets 2665aaee66e9:0f2ff26688b9 |
|
106 | new changesets 2665aaee66e9:0f2ff26688b9 | |
107 | $ cd b |
|
107 | $ cd b | |
108 |
|
108 | |||
109 | $ hg up -C 1 |
|
109 | $ hg up -C 1 | |
110 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
110 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
111 |
|
111 | |||
112 | $ hg merge 2 |
|
112 | $ hg merge 2 | |
113 | merging foo and bar to bar |
|
113 | merging foo and bar to bar | |
114 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
114 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
115 | (branch merge, don't forget to commit) |
|
115 | (branch merge, don't forget to commit) | |
116 |
|
116 | |||
117 | $ cat bar |
|
117 | $ cat bar | |
118 | line0 |
|
118 | line0 | |
119 | line1 |
|
119 | line1 | |
120 | line2 |
|
120 | line2 | |
121 |
|
121 | |||
122 | $ hg ci -m '3: merge with remote rename' |
|
122 | $ hg ci -m '3: merge with remote rename' | |
123 |
|
123 | |||
124 | $ hg debugindex bar |
|
124 | $ hg debugindex bar | |
125 | rev linkrev nodeid p1 p2 |
|
125 | rev linkrev nodeid p1 p2 | |
126 | 0 2 d35118874825 000000000000 000000000000 |
|
126 | 0 2 d35118874825 000000000000 000000000000 | |
127 | 1 3 5345f5ab8abd 000000000000 d35118874825 |
|
127 | 1 3 5345f5ab8abd 000000000000 d35118874825 | |
128 |
|
128 | |||
129 | $ hg debugrename bar |
|
129 | $ hg debugrename bar | |
130 | bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2 |
|
130 | bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2 | |
131 |
|
131 | |||
132 | $ hg debugindex foo |
|
132 | $ hg debugindex foo | |
133 | rev linkrev nodeid p1 p2 |
|
133 | rev linkrev nodeid p1 p2 | |
134 | 0 0 690b295714ae 000000000000 000000000000 |
|
134 | 0 0 690b295714ae 000000000000 000000000000 | |
135 | 1 1 9e25c27b8757 690b295714ae 000000000000 |
|
135 | 1 1 9e25c27b8757 690b295714ae 000000000000 | |
136 |
|
136 | |||
137 |
|
137 | |||
138 | Revert the content change from rev 2: |
|
138 | Revert the content change from rev 2: | |
139 |
|
139 | |||
140 | $ hg up -C 2 |
|
140 | $ hg up -C 2 | |
141 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
141 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
142 | $ rm bar |
|
142 | $ rm bar | |
143 | $ echo line1 > bar |
|
143 | $ echo line1 > bar | |
144 | $ hg ci -m '4: revert content change from rev 2' |
|
144 | $ hg ci -m '4: revert content change from rev 2' | |
145 | created new head |
|
145 | created new head | |
146 |
|
146 | |||
147 | $ hg log --template '{rev}:{node|short} {parents}\n' |
|
147 | $ hg log --template '{rev}:{node|short} {parents}\n' | |
148 | 4:2263c1be0967 2:0f2ff26688b9 |
|
148 | 4:2263c1be0967 2:0f2ff26688b9 | |
149 | 3:3ffa6b9e35f0 1:5cd961e4045d 2:0f2ff26688b9 |
|
149 | 3:3ffa6b9e35f0 1:5cd961e4045d 2:0f2ff26688b9 | |
150 | 2:0f2ff26688b9 0:2665aaee66e9 |
|
150 | 2:0f2ff26688b9 0:2665aaee66e9 | |
151 | 1:5cd961e4045d |
|
151 | 1:5cd961e4045d | |
152 | 0:2665aaee66e9 |
|
152 | 0:2665aaee66e9 | |
153 |
|
153 | |||
154 | This should use bar@rev2 as the ancestor: |
|
154 | This should use bar@rev2 as the ancestor: | |
155 |
|
155 | |||
156 | $ hg --debug merge 3 |
|
156 | $ hg --debug merge 3 | |
157 | resolving manifests |
|
157 | resolving manifests | |
158 | branchmerge: True, force: False, partial: False |
|
158 | branchmerge: True, force: False, partial: False | |
159 | ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 3ffa6b9e35f0 |
|
159 | ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 3ffa6b9e35f0 | |
|
160 | starting 4 threads for background file closing (?) | |||
160 | preserving bar for resolve of bar |
|
161 | preserving bar for resolve of bar | |
161 | starting 4 threads for background file closing (?) |
|
|||
162 | bar: versions differ -> m (premerge) |
|
162 | bar: versions differ -> m (premerge) | |
163 | picked tool ':merge' for bar (binary False symlink False changedelete False) |
|
163 | picked tool ':merge' for bar (binary False symlink False changedelete False) | |
164 | merging bar |
|
164 | merging bar | |
165 | my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9 |
|
165 | my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9 | |
166 | premerge successful |
|
166 | premerge successful | |
167 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
167 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
168 | (branch merge, don't forget to commit) |
|
168 | (branch merge, don't forget to commit) | |
169 |
|
169 | |||
170 | $ cat bar |
|
170 | $ cat bar | |
171 | line1 |
|
171 | line1 | |
172 | line2 |
|
172 | line2 | |
173 |
|
173 | |||
174 | $ hg ci -m '5: merge' |
|
174 | $ hg ci -m '5: merge' | |
175 |
|
175 | |||
176 | $ hg debugindex bar |
|
176 | $ hg debugindex bar | |
177 | rev linkrev nodeid p1 p2 |
|
177 | rev linkrev nodeid p1 p2 | |
178 | 0 2 d35118874825 000000000000 000000000000 |
|
178 | 0 2 d35118874825 000000000000 000000000000 | |
179 | 1 3 5345f5ab8abd 000000000000 d35118874825 |
|
179 | 1 3 5345f5ab8abd 000000000000 d35118874825 | |
180 | 2 4 ff4b45017382 d35118874825 000000000000 |
|
180 | 2 4 ff4b45017382 d35118874825 000000000000 | |
181 | 3 5 3701b4893544 ff4b45017382 5345f5ab8abd |
|
181 | 3 5 3701b4893544 ff4b45017382 5345f5ab8abd | |
182 |
|
182 | |||
183 | $ cd .. |
|
183 | $ cd .. |
@@ -1,150 +1,150 b'' | |||||
1 | initial |
|
1 | initial | |
2 | $ hg init test-a |
|
2 | $ hg init test-a | |
3 | $ cd test-a |
|
3 | $ cd test-a | |
4 | $ cat >test.txt <<"EOF" |
|
4 | $ cat >test.txt <<"EOF" | |
5 | > 1 |
|
5 | > 1 | |
6 | > 2 |
|
6 | > 2 | |
7 | > 3 |
|
7 | > 3 | |
8 | > EOF |
|
8 | > EOF | |
9 | $ hg add test.txt |
|
9 | $ hg add test.txt | |
10 | $ hg commit -m "Initial" |
|
10 | $ hg commit -m "Initial" | |
11 |
|
11 | |||
12 | clone |
|
12 | clone | |
13 | $ cd .. |
|
13 | $ cd .. | |
14 | $ hg clone test-a test-b |
|
14 | $ hg clone test-a test-b | |
15 | updating to branch default |
|
15 | updating to branch default | |
16 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
16 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
17 |
|
17 | |||
18 | change test-a |
|
18 | change test-a | |
19 | $ cd test-a |
|
19 | $ cd test-a | |
20 | $ cat >test.txt <<"EOF" |
|
20 | $ cat >test.txt <<"EOF" | |
21 | > one |
|
21 | > one | |
22 | > two |
|
22 | > two | |
23 | > three |
|
23 | > three | |
24 | > EOF |
|
24 | > EOF | |
25 | $ hg commit -m "Numbers as words" |
|
25 | $ hg commit -m "Numbers as words" | |
26 |
|
26 | |||
27 | change test-b |
|
27 | change test-b | |
28 | $ cd ../test-b |
|
28 | $ cd ../test-b | |
29 | $ cat >test.txt <<"EOF" |
|
29 | $ cat >test.txt <<"EOF" | |
30 | > 1 |
|
30 | > 1 | |
31 | > 2.5 |
|
31 | > 2.5 | |
32 | > 3 |
|
32 | > 3 | |
33 | > EOF |
|
33 | > EOF | |
34 | $ hg commit -m "2 -> 2.5" |
|
34 | $ hg commit -m "2 -> 2.5" | |
35 |
|
35 | |||
36 | now pull and merge from test-a |
|
36 | now pull and merge from test-a | |
37 | $ hg pull ../test-a |
|
37 | $ hg pull ../test-a | |
38 | pulling from ../test-a |
|
38 | pulling from ../test-a | |
39 | searching for changes |
|
39 | searching for changes | |
40 | adding changesets |
|
40 | adding changesets | |
41 | adding manifests |
|
41 | adding manifests | |
42 | adding file changes |
|
42 | adding file changes | |
43 | added 1 changesets with 1 changes to 1 files (+1 heads) |
|
43 | added 1 changesets with 1 changes to 1 files (+1 heads) | |
44 | new changesets 96b70246a118 |
|
44 | new changesets 96b70246a118 | |
45 | (run 'hg heads' to see heads, 'hg merge' to merge) |
|
45 | (run 'hg heads' to see heads, 'hg merge' to merge) | |
46 | $ hg merge |
|
46 | $ hg merge | |
47 | merging test.txt |
|
47 | merging test.txt | |
48 | warning: conflicts while merging test.txt! (edit, then use 'hg resolve --mark') |
|
48 | warning: conflicts while merging test.txt! (edit, then use 'hg resolve --mark') | |
49 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
49 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
50 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon |
|
50 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | |
51 | [1] |
|
51 | [1] | |
52 | resolve conflict |
|
52 | resolve conflict | |
53 | $ cat >test.txt <<"EOF" |
|
53 | $ cat >test.txt <<"EOF" | |
54 | > one |
|
54 | > one | |
55 | > two-point-five |
|
55 | > two-point-five | |
56 | > three |
|
56 | > three | |
57 | > EOF |
|
57 | > EOF | |
58 | $ rm -f *.orig |
|
58 | $ rm -f *.orig | |
59 | $ hg resolve -m test.txt |
|
59 | $ hg resolve -m test.txt | |
60 | (no more unresolved files) |
|
60 | (no more unresolved files) | |
61 | $ hg commit -m "Merge 1" |
|
61 | $ hg commit -m "Merge 1" | |
62 |
|
62 | |||
63 | change test-a again |
|
63 | change test-a again | |
64 | $ cd ../test-a |
|
64 | $ cd ../test-a | |
65 | $ cat >test.txt <<"EOF" |
|
65 | $ cat >test.txt <<"EOF" | |
66 | > one |
|
66 | > one | |
67 | > two-point-one |
|
67 | > two-point-one | |
68 | > three |
|
68 | > three | |
69 | > EOF |
|
69 | > EOF | |
70 | $ hg commit -m "two -> two-point-one" |
|
70 | $ hg commit -m "two -> two-point-one" | |
71 |
|
71 | |||
72 | pull and merge from test-a again |
|
72 | pull and merge from test-a again | |
73 | $ cd ../test-b |
|
73 | $ cd ../test-b | |
74 | $ hg pull ../test-a |
|
74 | $ hg pull ../test-a | |
75 | pulling from ../test-a |
|
75 | pulling from ../test-a | |
76 | searching for changes |
|
76 | searching for changes | |
77 | adding changesets |
|
77 | adding changesets | |
78 | adding manifests |
|
78 | adding manifests | |
79 | adding file changes |
|
79 | adding file changes | |
80 | added 1 changesets with 1 changes to 1 files (+1 heads) |
|
80 | added 1 changesets with 1 changes to 1 files (+1 heads) | |
81 | new changesets 40d11a4173a8 |
|
81 | new changesets 40d11a4173a8 | |
82 | (run 'hg heads' to see heads, 'hg merge' to merge) |
|
82 | (run 'hg heads' to see heads, 'hg merge' to merge) | |
83 | $ hg merge --debug |
|
83 | $ hg merge --debug | |
84 | resolving manifests |
|
84 | resolving manifests | |
85 | branchmerge: True, force: False, partial: False |
|
85 | branchmerge: True, force: False, partial: False | |
86 | ancestor: 96b70246a118, local: 50c3a7e29886+, remote: 40d11a4173a8 |
|
86 | ancestor: 96b70246a118, local: 50c3a7e29886+, remote: 40d11a4173a8 | |
|
87 | starting 4 threads for background file closing (?) | |||
87 | preserving test.txt for resolve of test.txt |
|
88 | preserving test.txt for resolve of test.txt | |
88 | starting 4 threads for background file closing (?) |
|
|||
89 | test.txt: versions differ -> m (premerge) |
|
89 | test.txt: versions differ -> m (premerge) | |
90 | picked tool ':merge' for test.txt (binary False symlink False changedelete False) |
|
90 | picked tool ':merge' for test.txt (binary False symlink False changedelete False) | |
91 | merging test.txt |
|
91 | merging test.txt | |
92 | my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118 |
|
92 | my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118 | |
93 | test.txt: versions differ -> m (merge) |
|
93 | test.txt: versions differ -> m (merge) | |
94 | picked tool ':merge' for test.txt (binary False symlink False changedelete False) |
|
94 | picked tool ':merge' for test.txt (binary False symlink False changedelete False) | |
95 | my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118 |
|
95 | my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118 | |
96 | warning: conflicts while merging test.txt! (edit, then use 'hg resolve --mark') |
|
96 | warning: conflicts while merging test.txt! (edit, then use 'hg resolve --mark') | |
97 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
97 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
98 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon |
|
98 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | |
99 | [1] |
|
99 | [1] | |
100 |
|
100 | |||
101 | $ cat test.txt |
|
101 | $ cat test.txt | |
102 | one |
|
102 | one | |
103 | <<<<<<< working copy: 50c3a7e29886 - test: Merge 1 |
|
103 | <<<<<<< working copy: 50c3a7e29886 - test: Merge 1 | |
104 | two-point-five |
|
104 | two-point-five | |
105 | ======= |
|
105 | ======= | |
106 | two-point-one |
|
106 | two-point-one | |
107 | >>>>>>> merge rev: 40d11a4173a8 - test: two -> two-point-one |
|
107 | >>>>>>> merge rev: 40d11a4173a8 - test: two -> two-point-one | |
108 | three |
|
108 | three | |
109 |
|
109 | |||
110 | $ hg debugindex test.txt |
|
110 | $ hg debugindex test.txt | |
111 | rev linkrev nodeid p1 p2 |
|
111 | rev linkrev nodeid p1 p2 | |
112 | 0 0 01365c4cca56 000000000000 000000000000 |
|
112 | 0 0 01365c4cca56 000000000000 000000000000 | |
113 | 1 1 7b013192566a 01365c4cca56 000000000000 |
|
113 | 1 1 7b013192566a 01365c4cca56 000000000000 | |
114 | 2 2 8fe46a3eb557 01365c4cca56 000000000000 |
|
114 | 2 2 8fe46a3eb557 01365c4cca56 000000000000 | |
115 | 3 3 fc3148072371 7b013192566a 8fe46a3eb557 |
|
115 | 3 3 fc3148072371 7b013192566a 8fe46a3eb557 | |
116 | 4 4 d40249267ae3 8fe46a3eb557 000000000000 |
|
116 | 4 4 d40249267ae3 8fe46a3eb557 000000000000 | |
117 |
|
117 | |||
118 | $ hg log |
|
118 | $ hg log | |
119 | changeset: 4:40d11a4173a8 |
|
119 | changeset: 4:40d11a4173a8 | |
120 | tag: tip |
|
120 | tag: tip | |
121 | parent: 2:96b70246a118 |
|
121 | parent: 2:96b70246a118 | |
122 | user: test |
|
122 | user: test | |
123 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
123 | date: Thu Jan 01 00:00:00 1970 +0000 | |
124 | summary: two -> two-point-one |
|
124 | summary: two -> two-point-one | |
125 |
|
125 | |||
126 | changeset: 3:50c3a7e29886 |
|
126 | changeset: 3:50c3a7e29886 | |
127 | parent: 1:d1e159716d41 |
|
127 | parent: 1:d1e159716d41 | |
128 | parent: 2:96b70246a118 |
|
128 | parent: 2:96b70246a118 | |
129 | user: test |
|
129 | user: test | |
130 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
130 | date: Thu Jan 01 00:00:00 1970 +0000 | |
131 | summary: Merge 1 |
|
131 | summary: Merge 1 | |
132 |
|
132 | |||
133 | changeset: 2:96b70246a118 |
|
133 | changeset: 2:96b70246a118 | |
134 | parent: 0:b1832b9d912a |
|
134 | parent: 0:b1832b9d912a | |
135 | user: test |
|
135 | user: test | |
136 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
136 | date: Thu Jan 01 00:00:00 1970 +0000 | |
137 | summary: Numbers as words |
|
137 | summary: Numbers as words | |
138 |
|
138 | |||
139 | changeset: 1:d1e159716d41 |
|
139 | changeset: 1:d1e159716d41 | |
140 | user: test |
|
140 | user: test | |
141 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
141 | date: Thu Jan 01 00:00:00 1970 +0000 | |
142 | summary: 2 -> 2.5 |
|
142 | summary: 2 -> 2.5 | |
143 |
|
143 | |||
144 | changeset: 0:b1832b9d912a |
|
144 | changeset: 0:b1832b9d912a | |
145 | user: test |
|
145 | user: test | |
146 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
146 | date: Thu Jan 01 00:00:00 1970 +0000 | |
147 | summary: Initial |
|
147 | summary: Initial | |
148 |
|
148 | |||
149 |
|
149 | |||
150 | $ cd .. |
|
150 | $ cd .. |
@@ -1,236 +1,236 b'' | |||||
1 | $ hg init |
|
1 | $ hg init | |
2 |
|
2 | |||
3 | $ echo "[merge]" >> .hg/hgrc |
|
3 | $ echo "[merge]" >> .hg/hgrc | |
4 | $ echo "followcopies = 1" >> .hg/hgrc |
|
4 | $ echo "followcopies = 1" >> .hg/hgrc | |
5 |
|
5 | |||
6 | $ echo foo > a |
|
6 | $ echo foo > a | |
7 | $ echo foo > a2 |
|
7 | $ echo foo > a2 | |
8 | $ hg add a a2 |
|
8 | $ hg add a a2 | |
9 | $ hg ci -m "start" |
|
9 | $ hg ci -m "start" | |
10 |
|
10 | |||
11 | $ hg mv a b |
|
11 | $ hg mv a b | |
12 | $ hg mv a2 b2 |
|
12 | $ hg mv a2 b2 | |
13 | $ hg ci -m "rename" |
|
13 | $ hg ci -m "rename" | |
14 |
|
14 | |||
15 | $ hg co 0 |
|
15 | $ hg co 0 | |
16 | 2 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
16 | 2 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
17 |
|
17 | |||
18 | $ echo blahblah > a |
|
18 | $ echo blahblah > a | |
19 | $ echo blahblah > a2 |
|
19 | $ echo blahblah > a2 | |
20 | $ hg mv a2 c2 |
|
20 | $ hg mv a2 c2 | |
21 | $ hg ci -m "modify" |
|
21 | $ hg ci -m "modify" | |
22 | created new head |
|
22 | created new head | |
23 |
|
23 | |||
24 | $ hg merge -y --debug |
|
24 | $ hg merge -y --debug | |
25 | unmatched files in local: |
|
25 | unmatched files in local: | |
26 | c2 |
|
26 | c2 | |
27 | unmatched files in other: |
|
27 | unmatched files in other: | |
28 | b |
|
28 | b | |
29 | b2 |
|
29 | b2 | |
30 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
30 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
31 | on local side: |
|
31 | on local side: | |
32 | src: 'a2' -> dst: 'c2' ! |
|
32 | src: 'a2' -> dst: 'c2' ! | |
33 | on remote side: |
|
33 | on remote side: | |
34 | src: 'a' -> dst: 'b' * |
|
34 | src: 'a' -> dst: 'b' * | |
35 | src: 'a2' -> dst: 'b2' ! |
|
35 | src: 'a2' -> dst: 'b2' ! | |
36 | checking for directory renames |
|
36 | checking for directory renames | |
37 | resolving manifests |
|
37 | resolving manifests | |
38 | branchmerge: True, force: False, partial: False |
|
38 | branchmerge: True, force: False, partial: False | |
39 | ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c |
|
39 | ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c | |
40 | note: possible conflict - a2 was renamed multiple times to: |
|
40 | note: possible conflict - a2 was renamed multiple times to: | |
41 | b2 |
|
41 | b2 | |
42 | c2 |
|
42 | c2 | |
43 | b2: remote created -> g |
|
43 | b2: remote created -> g | |
44 | getting b2 |
|
44 | getting b2 | |
45 | preserving a for resolve of b |
|
45 | preserving a for resolve of b | |
46 | removing a |
|
46 | removing a | |
47 | b: remote moved from a -> m (premerge) |
|
47 | b: remote moved from a -> m (premerge) | |
48 | picked tool ':merge' for b (binary False symlink False changedelete False) |
|
48 | picked tool ':merge' for b (binary False symlink False changedelete False) | |
49 | merging a and b to b |
|
49 | merging a and b to b | |
50 | my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c |
|
50 | my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c | |
51 | premerge successful |
|
51 | premerge successful | |
52 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
52 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
53 | (branch merge, don't forget to commit) |
|
53 | (branch merge, don't forget to commit) | |
54 |
|
54 | |||
55 | $ hg status -AC |
|
55 | $ hg status -AC | |
56 | M b |
|
56 | M b | |
57 | a |
|
57 | a | |
58 | M b2 |
|
58 | M b2 | |
59 | R a |
|
59 | R a | |
60 | C c2 |
|
60 | C c2 | |
61 |
|
61 | |||
62 | $ cat b |
|
62 | $ cat b | |
63 | blahblah |
|
63 | blahblah | |
64 |
|
64 | |||
65 | $ hg ci -m "merge" |
|
65 | $ hg ci -m "merge" | |
66 |
|
66 | |||
67 | $ hg debugindex b |
|
67 | $ hg debugindex b | |
68 | rev linkrev nodeid p1 p2 |
|
68 | rev linkrev nodeid p1 p2 | |
69 | 0 1 57eacc201a7f 000000000000 000000000000 |
|
69 | 0 1 57eacc201a7f 000000000000 000000000000 | |
70 | 1 3 4727ba907962 000000000000 57eacc201a7f |
|
70 | 1 3 4727ba907962 000000000000 57eacc201a7f | |
71 |
|
71 | |||
72 | $ hg debugrename b |
|
72 | $ hg debugrename b | |
73 | b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66 |
|
73 | b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66 | |
74 |
|
74 | |||
75 | This used to trigger a "divergent renames" warning, despite no renames |
|
75 | This used to trigger a "divergent renames" warning, despite no renames | |
76 |
|
76 | |||
77 | $ hg cp b b3 |
|
77 | $ hg cp b b3 | |
78 | $ hg cp b b4 |
|
78 | $ hg cp b b4 | |
79 | $ hg ci -A -m 'copy b twice' |
|
79 | $ hg ci -A -m 'copy b twice' | |
80 | $ hg up '.^' |
|
80 | $ hg up '.^' | |
81 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
81 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
82 | $ hg up |
|
82 | $ hg up | |
83 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
83 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
84 | $ hg rm b3 b4 |
|
84 | $ hg rm b3 b4 | |
85 | $ hg ci -m 'clean up a bit of our mess' |
|
85 | $ hg ci -m 'clean up a bit of our mess' | |
86 |
|
86 | |||
87 | We'd rather not warn on divergent renames done in the same changeset (issue2113) |
|
87 | We'd rather not warn on divergent renames done in the same changeset (issue2113) | |
88 |
|
88 | |||
89 | $ hg cp b b3 |
|
89 | $ hg cp b b3 | |
90 | $ hg mv b b4 |
|
90 | $ hg mv b b4 | |
91 | $ hg ci -A -m 'divergent renames in same changeset' |
|
91 | $ hg ci -A -m 'divergent renames in same changeset' | |
92 | $ hg up '.^' |
|
92 | $ hg up '.^' | |
93 | 1 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
93 | 1 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
94 | $ hg up |
|
94 | $ hg up | |
95 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
95 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
96 |
|
96 | |||
97 | Check for issue2642 |
|
97 | Check for issue2642 | |
98 |
|
98 | |||
99 | $ hg init t |
|
99 | $ hg init t | |
100 | $ cd t |
|
100 | $ cd t | |
101 |
|
101 | |||
102 | $ echo c0 > f1 |
|
102 | $ echo c0 > f1 | |
103 | $ hg ci -Aqm0 |
|
103 | $ hg ci -Aqm0 | |
104 |
|
104 | |||
105 | $ hg up null -q |
|
105 | $ hg up null -q | |
106 | $ echo c1 > f1 # backport |
|
106 | $ echo c1 > f1 # backport | |
107 | $ hg ci -Aqm1 |
|
107 | $ hg ci -Aqm1 | |
108 | $ hg mv f1 f2 |
|
108 | $ hg mv f1 f2 | |
109 | $ hg ci -qm2 |
|
109 | $ hg ci -qm2 | |
110 |
|
110 | |||
111 | $ hg up 0 -q |
|
111 | $ hg up 0 -q | |
112 | $ hg merge 1 -q --tool internal:local |
|
112 | $ hg merge 1 -q --tool internal:local | |
113 | $ hg ci -qm3 |
|
113 | $ hg ci -qm3 | |
114 |
|
114 | |||
115 | $ hg merge 2 |
|
115 | $ hg merge 2 | |
116 | merging f1 and f2 to f2 |
|
116 | merging f1 and f2 to f2 | |
117 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
117 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
118 | (branch merge, don't forget to commit) |
|
118 | (branch merge, don't forget to commit) | |
119 |
|
119 | |||
120 | $ cat f2 |
|
120 | $ cat f2 | |
121 | c0 |
|
121 | c0 | |
122 |
|
122 | |||
123 | $ cd .. |
|
123 | $ cd .. | |
124 |
|
124 | |||
125 | Check for issue2089 |
|
125 | Check for issue2089 | |
126 |
|
126 | |||
127 | $ hg init repo2089 |
|
127 | $ hg init repo2089 | |
128 | $ cd repo2089 |
|
128 | $ cd repo2089 | |
129 |
|
129 | |||
130 | $ echo c0 > f1 |
|
130 | $ echo c0 > f1 | |
131 | $ hg ci -Aqm0 |
|
131 | $ hg ci -Aqm0 | |
132 |
|
132 | |||
133 | $ hg up null -q |
|
133 | $ hg up null -q | |
134 | $ echo c1 > f1 |
|
134 | $ echo c1 > f1 | |
135 | $ hg ci -Aqm1 |
|
135 | $ hg ci -Aqm1 | |
136 |
|
136 | |||
137 | $ hg up 0 -q |
|
137 | $ hg up 0 -q | |
138 | $ hg merge 1 -q --tool internal:local |
|
138 | $ hg merge 1 -q --tool internal:local | |
139 | $ echo c2 > f1 |
|
139 | $ echo c2 > f1 | |
140 | $ hg ci -qm2 |
|
140 | $ hg ci -qm2 | |
141 |
|
141 | |||
142 | $ hg up 1 -q |
|
142 | $ hg up 1 -q | |
143 | $ hg mv f1 f2 |
|
143 | $ hg mv f1 f2 | |
144 | $ hg ci -Aqm3 |
|
144 | $ hg ci -Aqm3 | |
145 |
|
145 | |||
146 | $ hg up 2 -q |
|
146 | $ hg up 2 -q | |
147 | $ hg merge 3 |
|
147 | $ hg merge 3 | |
148 | merging f1 and f2 to f2 |
|
148 | merging f1 and f2 to f2 | |
149 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
149 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
150 | (branch merge, don't forget to commit) |
|
150 | (branch merge, don't forget to commit) | |
151 |
|
151 | |||
152 | $ cat f2 |
|
152 | $ cat f2 | |
153 | c2 |
|
153 | c2 | |
154 |
|
154 | |||
155 | $ cd .. |
|
155 | $ cd .. | |
156 |
|
156 | |||
157 | Check for issue3074 |
|
157 | Check for issue3074 | |
158 |
|
158 | |||
159 | $ hg init repo3074 |
|
159 | $ hg init repo3074 | |
160 | $ cd repo3074 |
|
160 | $ cd repo3074 | |
161 | $ echo foo > file |
|
161 | $ echo foo > file | |
162 | $ hg add file |
|
162 | $ hg add file | |
163 | $ hg commit -m "added file" |
|
163 | $ hg commit -m "added file" | |
164 | $ hg mv file newfile |
|
164 | $ hg mv file newfile | |
165 | $ hg commit -m "renamed file" |
|
165 | $ hg commit -m "renamed file" | |
166 | $ hg update 0 |
|
166 | $ hg update 0 | |
167 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
167 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
168 | $ hg rm file |
|
168 | $ hg rm file | |
169 | $ hg commit -m "deleted file" |
|
169 | $ hg commit -m "deleted file" | |
170 | created new head |
|
170 | created new head | |
171 | $ hg merge --debug |
|
171 | $ hg merge --debug | |
172 | unmatched files in other: |
|
172 | unmatched files in other: | |
173 | newfile |
|
173 | newfile | |
174 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
174 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
175 | on remote side: |
|
175 | on remote side: | |
176 | src: 'file' -> dst: 'newfile' % |
|
176 | src: 'file' -> dst: 'newfile' % | |
177 | checking for directory renames |
|
177 | checking for directory renames | |
178 | resolving manifests |
|
178 | resolving manifests | |
179 | branchmerge: True, force: False, partial: False |
|
179 | branchmerge: True, force: False, partial: False | |
180 | ancestor: 19d7f95df299, local: 0084274f6b67+, remote: 5d32493049f0 |
|
180 | ancestor: 19d7f95df299, local: 0084274f6b67+, remote: 5d32493049f0 | |
181 | note: possible conflict - file was deleted and renamed to: |
|
181 | note: possible conflict - file was deleted and renamed to: | |
182 | newfile |
|
182 | newfile | |
183 | newfile: remote created -> g |
|
183 | newfile: remote created -> g | |
184 | getting newfile |
|
184 | getting newfile | |
185 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
185 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
186 | (branch merge, don't forget to commit) |
|
186 | (branch merge, don't forget to commit) | |
187 | $ hg status |
|
187 | $ hg status | |
188 | M newfile |
|
188 | M newfile | |
189 | $ cd .. |
|
189 | $ cd .. | |
190 |
|
190 | |||
191 | Create x and y, then modify y and rename x to z on one side of merge, and |
|
191 | Create x and y, then modify y and rename x to z on one side of merge, and | |
192 | modify x and rename y to z on the other side. |
|
192 | modify x and rename y to z on the other side. | |
193 | $ hg init conflicting-target |
|
193 | $ hg init conflicting-target | |
194 | $ cd conflicting-target |
|
194 | $ cd conflicting-target | |
195 | $ echo x > x |
|
195 | $ echo x > x | |
196 | $ echo y > y |
|
196 | $ echo y > y | |
197 | $ hg ci -Aqm 'add x and y' |
|
197 | $ hg ci -Aqm 'add x and y' | |
198 | $ hg mv x z |
|
198 | $ hg mv x z | |
199 | $ echo foo >> y |
|
199 | $ echo foo >> y | |
200 | $ hg ci -qm 'modify y, rename x to z' |
|
200 | $ hg ci -qm 'modify y, rename x to z' | |
201 | $ hg co -q 0 |
|
201 | $ hg co -q 0 | |
202 | $ hg mv y z |
|
202 | $ hg mv y z | |
203 | $ echo foo >> x |
|
203 | $ echo foo >> x | |
204 | $ hg ci -qm 'modify x, rename y to z' |
|
204 | $ hg ci -qm 'modify x, rename y to z' | |
205 | # We should probably tell the user about the conflicting rename sources. |
|
205 | # We should probably tell the user about the conflicting rename sources. | |
206 | # Depending on which side they pick, we should take that rename and get |
|
206 | # Depending on which side they pick, we should take that rename and get | |
207 | # the changes to the source from the other side. The unchanged file should |
|
207 | # the changes to the source from the other side. The unchanged file should | |
208 | # remain. |
|
208 | # remain. | |
209 | $ hg merge --debug 1 -t :merge3 |
|
209 | $ hg merge --debug 1 -t :merge3 | |
210 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
210 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
211 | on local side: |
|
211 | on local side: | |
212 | src: 'y' -> dst: 'z' * |
|
212 | src: 'y' -> dst: 'z' * | |
213 | on remote side: |
|
213 | on remote side: | |
214 | src: 'x' -> dst: 'z' * |
|
214 | src: 'x' -> dst: 'z' * | |
215 | checking for directory renames |
|
215 | checking for directory renames | |
216 | resolving manifests |
|
216 | resolving manifests | |
217 | branchmerge: True, force: False, partial: False |
|
217 | branchmerge: True, force: False, partial: False | |
218 | ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508 |
|
218 | ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508 | |
|
219 | starting 4 threads for background file closing (?) | |||
219 | preserving z for resolve of z |
|
220 | preserving z for resolve of z | |
220 | starting 4 threads for background file closing (?) |
|
|||
221 | z: both renamed from y -> m (premerge) |
|
221 | z: both renamed from y -> m (premerge) | |
222 | picked tool ':merge3' for z (binary False symlink False changedelete False) |
|
222 | picked tool ':merge3' for z (binary False symlink False changedelete False) | |
223 | merging z |
|
223 | merging z | |
224 | my z@07fcbc9a74ed+ other z@f21419739508 ancestor y@5151c134577e |
|
224 | my z@07fcbc9a74ed+ other z@f21419739508 ancestor y@5151c134577e | |
225 | premerge successful |
|
225 | premerge successful | |
226 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
226 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
227 | (branch merge, don't forget to commit) |
|
227 | (branch merge, don't forget to commit) | |
228 | $ ls |
|
228 | $ ls | |
229 | x |
|
229 | x | |
230 | z |
|
230 | z | |
231 | $ cat x |
|
231 | $ cat x | |
232 | x |
|
232 | x | |
233 | foo |
|
233 | foo | |
234 | # 'z' should have had the added 'foo' line |
|
234 | # 'z' should have had the added 'foo' line | |
235 | $ cat z |
|
235 | $ cat z | |
236 | x |
|
236 | x |
@@ -1,1050 +1,1048 b'' | |||||
1 |
|
1 | |||
2 | $ mkdir -p t |
|
2 | $ mkdir -p t | |
3 | $ cd t |
|
3 | $ cd t | |
4 | $ cat <<EOF > merge |
|
4 | $ cat <<EOF > merge | |
5 | > import sys, os |
|
5 | > import sys, os | |
6 | > f = open(sys.argv[1], "w") |
|
6 | > f = open(sys.argv[1], "w") | |
7 | > f.write("merge %s %s %s" % (sys.argv[1], sys.argv[2], sys.argv[3])) |
|
7 | > f.write("merge %s %s %s" % (sys.argv[1], sys.argv[2], sys.argv[3])) | |
8 | > f.close() |
|
8 | > f.close() | |
9 | > EOF |
|
9 | > EOF | |
10 |
|
10 | |||
11 | perform a test merge with possible renaming |
|
11 | perform a test merge with possible renaming | |
12 | args: |
|
12 | args: | |
13 | $1 = action in local branch |
|
13 | $1 = action in local branch | |
14 | $2 = action in remote branch |
|
14 | $2 = action in remote branch | |
15 | $3 = action in working dir |
|
15 | $3 = action in working dir | |
16 | $4 = expected result |
|
16 | $4 = expected result | |
17 |
|
17 | |||
18 | $ tm() |
|
18 | $ tm() | |
19 | > { |
|
19 | > { | |
20 | > hg init t |
|
20 | > hg init t | |
21 | > cd t |
|
21 | > cd t | |
22 | > echo "[merge]" >> .hg/hgrc |
|
22 | > echo "[merge]" >> .hg/hgrc | |
23 | > echo "followcopies = 1" >> .hg/hgrc |
|
23 | > echo "followcopies = 1" >> .hg/hgrc | |
24 | > |
|
24 | > | |
25 | > # base |
|
25 | > # base | |
26 | > echo base > a |
|
26 | > echo base > a | |
27 | > echo base > rev # used to force commits |
|
27 | > echo base > rev # used to force commits | |
28 | > hg add a rev |
|
28 | > hg add a rev | |
29 | > hg ci -m "base" |
|
29 | > hg ci -m "base" | |
30 | > |
|
30 | > | |
31 | > # remote |
|
31 | > # remote | |
32 | > echo remote > rev |
|
32 | > echo remote > rev | |
33 | > if [ "$2" != "" ] ; then $2 ; fi |
|
33 | > if [ "$2" != "" ] ; then $2 ; fi | |
34 | > hg ci -m "remote" |
|
34 | > hg ci -m "remote" | |
35 | > |
|
35 | > | |
36 | > # local |
|
36 | > # local | |
37 | > hg co -q 0 |
|
37 | > hg co -q 0 | |
38 | > echo local > rev |
|
38 | > echo local > rev | |
39 | > if [ "$1" != "" ] ; then $1 ; fi |
|
39 | > if [ "$1" != "" ] ; then $1 ; fi | |
40 | > hg ci -m "local" |
|
40 | > hg ci -m "local" | |
41 | > |
|
41 | > | |
42 | > # working dir |
|
42 | > # working dir | |
43 | > echo local > rev |
|
43 | > echo local > rev | |
44 | > if [ "$3" != "" ] ; then $3 ; fi |
|
44 | > if [ "$3" != "" ] ; then $3 ; fi | |
45 | > |
|
45 | > | |
46 | > # merge |
|
46 | > # merge | |
47 | > echo "--------------" |
|
47 | > echo "--------------" | |
48 | > echo "test L:$1 R:$2 W:$3 - $4" |
|
48 | > echo "test L:$1 R:$2 W:$3 - $4" | |
49 | > echo "--------------" |
|
49 | > echo "--------------" | |
50 | > hg merge -y --debug --traceback --tool="\"$PYTHON\" ../merge" |
|
50 | > hg merge -y --debug --traceback --tool="\"$PYTHON\" ../merge" | |
51 | > |
|
51 | > | |
52 | > echo "--------------" |
|
52 | > echo "--------------" | |
53 | > hg status -camC -X rev |
|
53 | > hg status -camC -X rev | |
54 | > |
|
54 | > | |
55 | > hg ci -m "merge" |
|
55 | > hg ci -m "merge" | |
56 | > |
|
56 | > | |
57 | > echo "--------------" |
|
57 | > echo "--------------" | |
58 | > echo |
|
58 | > echo | |
59 | > |
|
59 | > | |
60 | > cd .. |
|
60 | > cd .. | |
61 | > rm -r t |
|
61 | > rm -r t | |
62 | > } |
|
62 | > } | |
63 | $ up() { |
|
63 | $ up() { | |
64 | > cp rev $1 |
|
64 | > cp rev $1 | |
65 | > hg add $1 2> /dev/null |
|
65 | > hg add $1 2> /dev/null | |
66 | > if [ "$2" != "" ] ; then |
|
66 | > if [ "$2" != "" ] ; then | |
67 | > cp rev $2 |
|
67 | > cp rev $2 | |
68 | > hg add $2 2> /dev/null |
|
68 | > hg add $2 2> /dev/null | |
69 | > fi |
|
69 | > fi | |
70 | > } |
|
70 | > } | |
71 | $ um() { up $1; hg mv $1 $2; } |
|
71 | $ um() { up $1; hg mv $1 $2; } | |
72 | $ nc() { hg cp $1 $2; } # just copy |
|
72 | $ nc() { hg cp $1 $2; } # just copy | |
73 | $ nm() { hg mv $1 $2; } # just move |
|
73 | $ nm() { hg mv $1 $2; } # just move | |
74 | $ tm "up a " "nc a b" " " "1 get local a to b" |
|
74 | $ tm "up a " "nc a b" " " "1 get local a to b" | |
75 | created new head |
|
75 | created new head | |
76 | -------------- |
|
76 | -------------- | |
77 | test L:up a R:nc a b W: - 1 get local a to b |
|
77 | test L:up a R:nc a b W: - 1 get local a to b | |
78 | -------------- |
|
78 | -------------- | |
79 | unmatched files in other: |
|
79 | unmatched files in other: | |
80 | b |
|
80 | b | |
81 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
81 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
82 | on remote side: |
|
82 | on remote side: | |
83 | src: 'a' -> dst: 'b' * |
|
83 | src: 'a' -> dst: 'b' * | |
84 | checking for directory renames |
|
84 | checking for directory renames | |
85 | resolving manifests |
|
85 | resolving manifests | |
86 | branchmerge: True, force: False, partial: False |
|
86 | branchmerge: True, force: False, partial: False | |
87 | ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24 |
|
87 | ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24 | |
|
88 | starting 4 threads for background file closing (?) | |||
88 | preserving a for resolve of b |
|
89 | preserving a for resolve of b | |
89 | preserving rev for resolve of rev |
|
90 | preserving rev for resolve of rev | |
90 | starting 4 threads for background file closing (?) |
|
|||
91 | b: remote copied from a -> m (premerge) |
|
91 | b: remote copied from a -> m (premerge) | |
92 | starting 4 threads for background file closing (?) |
|
|||
93 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
92 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
94 | merging a and b to b |
|
93 | merging a and b to b | |
95 | my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337 |
|
94 | my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337 | |
96 | premerge successful |
|
95 | premerge successful | |
97 | rev: versions differ -> m (premerge) |
|
96 | rev: versions differ -> m (premerge) | |
98 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
97 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
99 | merging rev |
|
98 | merging rev | |
100 | my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337 |
|
99 | my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |
101 | rev: versions differ -> m (merge) |
|
100 | rev: versions differ -> m (merge) | |
102 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
101 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
103 | my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337 |
|
102 | my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |
104 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
103 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
105 | merge tool returned: 0 |
|
104 | merge tool returned: 0 | |
106 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
105 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
107 | (branch merge, don't forget to commit) |
|
106 | (branch merge, don't forget to commit) | |
108 | -------------- |
|
107 | -------------- | |
109 | M b |
|
108 | M b | |
110 | a |
|
109 | a | |
111 | C a |
|
110 | C a | |
112 | -------------- |
|
111 | -------------- | |
113 |
|
112 | |||
114 | $ tm "nc a b" "up a " " " "2 get rem change to a and b" |
|
113 | $ tm "nc a b" "up a " " " "2 get rem change to a and b" | |
115 | created new head |
|
114 | created new head | |
116 | -------------- |
|
115 | -------------- | |
117 | test L:nc a b R:up a W: - 2 get rem change to a and b |
|
116 | test L:nc a b R:up a W: - 2 get rem change to a and b | |
118 | -------------- |
|
117 | -------------- | |
119 | unmatched files in local: |
|
118 | unmatched files in local: | |
120 | b |
|
119 | b | |
121 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
120 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
122 | on local side: |
|
121 | on local side: | |
123 | src: 'a' -> dst: 'b' * |
|
122 | src: 'a' -> dst: 'b' * | |
124 | checking for directory renames |
|
123 | checking for directory renames | |
125 | resolving manifests |
|
124 | resolving manifests | |
126 | branchmerge: True, force: False, partial: False |
|
125 | branchmerge: True, force: False, partial: False | |
127 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71 |
|
126 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71 | |
128 | a: remote is newer -> g |
|
127 | a: remote is newer -> g | |
129 | getting a |
|
128 | getting a | |
130 | preserving b for resolve of b |
|
129 | preserving b for resolve of b | |
131 | preserving rev for resolve of rev |
|
130 | preserving rev for resolve of rev | |
132 | b: local copied/moved from a -> m (premerge) |
|
131 | b: local copied/moved from a -> m (premerge) | |
133 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
132 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
134 | merging b and a to b |
|
133 | merging b and a to b | |
135 | my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337 |
|
134 | my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337 | |
136 | premerge successful |
|
135 | premerge successful | |
137 | rev: versions differ -> m (premerge) |
|
136 | rev: versions differ -> m (premerge) | |
138 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
137 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
139 | merging rev |
|
138 | merging rev | |
140 | my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
139 | my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
141 | rev: versions differ -> m (merge) |
|
140 | rev: versions differ -> m (merge) | |
142 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
141 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
143 | my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
142 | my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
144 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
143 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
145 | merge tool returned: 0 |
|
144 | merge tool returned: 0 | |
146 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
145 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
147 | (branch merge, don't forget to commit) |
|
146 | (branch merge, don't forget to commit) | |
148 | -------------- |
|
147 | -------------- | |
149 | M a |
|
148 | M a | |
150 | M b |
|
149 | M b | |
151 | a |
|
150 | a | |
152 | -------------- |
|
151 | -------------- | |
153 |
|
152 | |||
154 | $ tm "up a " "nm a b" " " "3 get local a change to b, remove a" |
|
153 | $ tm "up a " "nm a b" " " "3 get local a change to b, remove a" | |
155 | created new head |
|
154 | created new head | |
156 | -------------- |
|
155 | -------------- | |
157 | test L:up a R:nm a b W: - 3 get local a change to b, remove a |
|
156 | test L:up a R:nm a b W: - 3 get local a change to b, remove a | |
158 | -------------- |
|
157 | -------------- | |
159 | unmatched files in other: |
|
158 | unmatched files in other: | |
160 | b |
|
159 | b | |
161 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
160 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
162 | on remote side: |
|
161 | on remote side: | |
163 | src: 'a' -> dst: 'b' * |
|
162 | src: 'a' -> dst: 'b' * | |
164 | checking for directory renames |
|
163 | checking for directory renames | |
165 | resolving manifests |
|
164 | resolving manifests | |
166 | branchmerge: True, force: False, partial: False |
|
165 | branchmerge: True, force: False, partial: False | |
167 | ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a |
|
166 | ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a | |
|
167 | starting 4 threads for background file closing (?) | |||
168 | preserving a for resolve of b |
|
168 | preserving a for resolve of b | |
169 | preserving rev for resolve of rev |
|
169 | preserving rev for resolve of rev | |
170 | removing a |
|
170 | removing a | |
171 | starting 4 threads for background file closing (?) |
|
|||
172 | b: remote moved from a -> m (premerge) |
|
171 | b: remote moved from a -> m (premerge) | |
173 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
172 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
174 | merging a and b to b |
|
173 | merging a and b to b | |
175 | my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337 |
|
174 | my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337 | |
176 | premerge successful |
|
175 | premerge successful | |
177 | rev: versions differ -> m (premerge) |
|
176 | rev: versions differ -> m (premerge) | |
178 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
177 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
179 | merging rev |
|
178 | merging rev | |
180 | my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
179 | my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337 | |
181 | rev: versions differ -> m (merge) |
|
180 | rev: versions differ -> m (merge) | |
182 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
181 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
183 | my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
182 | my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337 | |
184 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
183 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
185 | merge tool returned: 0 |
|
184 | merge tool returned: 0 | |
186 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
185 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
187 | (branch merge, don't forget to commit) |
|
186 | (branch merge, don't forget to commit) | |
188 | -------------- |
|
187 | -------------- | |
189 | M b |
|
188 | M b | |
190 | a |
|
189 | a | |
191 | -------------- |
|
190 | -------------- | |
192 |
|
191 | |||
193 | $ tm "nm a b" "up a " " " "4 get remote change to b" |
|
192 | $ tm "nm a b" "up a " " " "4 get remote change to b" | |
194 | created new head |
|
193 | created new head | |
195 | -------------- |
|
194 | -------------- | |
196 | test L:nm a b R:up a W: - 4 get remote change to b |
|
195 | test L:nm a b R:up a W: - 4 get remote change to b | |
197 | -------------- |
|
196 | -------------- | |
198 | unmatched files in local: |
|
197 | unmatched files in local: | |
199 | b |
|
198 | b | |
200 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
199 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
201 | on local side: |
|
200 | on local side: | |
202 | src: 'a' -> dst: 'b' * |
|
201 | src: 'a' -> dst: 'b' * | |
203 | checking for directory renames |
|
202 | checking for directory renames | |
204 | resolving manifests |
|
203 | resolving manifests | |
205 | branchmerge: True, force: False, partial: False |
|
204 | branchmerge: True, force: False, partial: False | |
206 | ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71 |
|
205 | ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71 | |
|
206 | starting 4 threads for background file closing (?) | |||
207 | preserving b for resolve of b |
|
207 | preserving b for resolve of b | |
208 | preserving rev for resolve of rev |
|
208 | preserving rev for resolve of rev | |
209 | starting 4 threads for background file closing (?) |
|
|||
210 | b: local copied/moved from a -> m (premerge) |
|
209 | b: local copied/moved from a -> m (premerge) | |
211 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
210 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
212 | merging b and a to b |
|
211 | merging b and a to b | |
213 | my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337 |
|
212 | my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337 | |
214 | premerge successful |
|
213 | premerge successful | |
215 | rev: versions differ -> m (premerge) |
|
214 | rev: versions differ -> m (premerge) | |
216 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
215 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
217 | merging rev |
|
216 | merging rev | |
218 | my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
217 | my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
219 | rev: versions differ -> m (merge) |
|
218 | rev: versions differ -> m (merge) | |
220 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
219 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
221 | my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
220 | my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
222 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
221 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
223 | merge tool returned: 0 |
|
222 | merge tool returned: 0 | |
224 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
223 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
225 | (branch merge, don't forget to commit) |
|
224 | (branch merge, don't forget to commit) | |
226 | -------------- |
|
225 | -------------- | |
227 | M b |
|
226 | M b | |
228 | a |
|
227 | a | |
229 | -------------- |
|
228 | -------------- | |
230 |
|
229 | |||
231 | $ tm " " "nc a b" " " "5 get b" |
|
230 | $ tm " " "nc a b" " " "5 get b" | |
232 | created new head |
|
231 | created new head | |
233 | -------------- |
|
232 | -------------- | |
234 | test L: R:nc a b W: - 5 get b |
|
233 | test L: R:nc a b W: - 5 get b | |
235 | -------------- |
|
234 | -------------- | |
236 | unmatched files in other: |
|
235 | unmatched files in other: | |
237 | b |
|
236 | b | |
238 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
237 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
239 | on remote side: |
|
238 | on remote side: | |
240 | src: 'a' -> dst: 'b' |
|
239 | src: 'a' -> dst: 'b' | |
241 | checking for directory renames |
|
240 | checking for directory renames | |
242 | resolving manifests |
|
241 | resolving manifests | |
243 | branchmerge: True, force: False, partial: False |
|
242 | branchmerge: True, force: False, partial: False | |
244 | ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24 |
|
243 | ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24 | |
245 | b: remote created -> g |
|
244 | b: remote created -> g | |
246 | getting b |
|
245 | getting b | |
247 | preserving rev for resolve of rev |
|
246 | preserving rev for resolve of rev | |
248 | rev: versions differ -> m (premerge) |
|
247 | rev: versions differ -> m (premerge) | |
249 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
248 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
250 | merging rev |
|
249 | merging rev | |
251 | my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337 |
|
250 | my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |
252 | rev: versions differ -> m (merge) |
|
251 | rev: versions differ -> m (merge) | |
253 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
252 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
254 | my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337 |
|
253 | my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |
255 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
254 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
256 | merge tool returned: 0 |
|
255 | merge tool returned: 0 | |
257 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
256 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
258 | (branch merge, don't forget to commit) |
|
257 | (branch merge, don't forget to commit) | |
259 | -------------- |
|
258 | -------------- | |
260 | M b |
|
259 | M b | |
261 | C a |
|
260 | C a | |
262 | -------------- |
|
261 | -------------- | |
263 |
|
262 | |||
264 | $ tm "nc a b" " " " " "6 nothing" |
|
263 | $ tm "nc a b" " " " " "6 nothing" | |
265 | created new head |
|
264 | created new head | |
266 | -------------- |
|
265 | -------------- | |
267 | test L:nc a b R: W: - 6 nothing |
|
266 | test L:nc a b R: W: - 6 nothing | |
268 | -------------- |
|
267 | -------------- | |
269 | unmatched files in local: |
|
268 | unmatched files in local: | |
270 | b |
|
269 | b | |
271 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
270 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
272 | on local side: |
|
271 | on local side: | |
273 | src: 'a' -> dst: 'b' |
|
272 | src: 'a' -> dst: 'b' | |
274 | checking for directory renames |
|
273 | checking for directory renames | |
275 | resolving manifests |
|
274 | resolving manifests | |
276 | branchmerge: True, force: False, partial: False |
|
275 | branchmerge: True, force: False, partial: False | |
277 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336 |
|
276 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336 | |
|
277 | starting 4 threads for background file closing (?) | |||
278 | preserving rev for resolve of rev |
|
278 | preserving rev for resolve of rev | |
279 | starting 4 threads for background file closing (?) |
|
|||
280 | rev: versions differ -> m (premerge) |
|
279 | rev: versions differ -> m (premerge) | |
281 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
280 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
282 | merging rev |
|
281 | merging rev | |
283 | my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337 |
|
282 | my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337 | |
284 | rev: versions differ -> m (merge) |
|
283 | rev: versions differ -> m (merge) | |
285 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
284 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
286 | my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337 |
|
285 | my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337 | |
287 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
286 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
288 | merge tool returned: 0 |
|
287 | merge tool returned: 0 | |
289 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
288 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
290 | (branch merge, don't forget to commit) |
|
289 | (branch merge, don't forget to commit) | |
291 | -------------- |
|
290 | -------------- | |
292 | C a |
|
291 | C a | |
293 | C b |
|
292 | C b | |
294 | -------------- |
|
293 | -------------- | |
295 |
|
294 | |||
296 | $ tm " " "nm a b" " " "7 get b" |
|
295 | $ tm " " "nm a b" " " "7 get b" | |
297 | created new head |
|
296 | created new head | |
298 | -------------- |
|
297 | -------------- | |
299 | test L: R:nm a b W: - 7 get b |
|
298 | test L: R:nm a b W: - 7 get b | |
300 | -------------- |
|
299 | -------------- | |
301 | unmatched files in other: |
|
300 | unmatched files in other: | |
302 | b |
|
301 | b | |
303 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
302 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
304 | on remote side: |
|
303 | on remote side: | |
305 | src: 'a' -> dst: 'b' |
|
304 | src: 'a' -> dst: 'b' | |
306 | checking for directory renames |
|
305 | checking for directory renames | |
307 | resolving manifests |
|
306 | resolving manifests | |
308 | branchmerge: True, force: False, partial: False |
|
307 | branchmerge: True, force: False, partial: False | |
309 | ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a |
|
308 | ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a | |
310 | a: other deleted -> r |
|
309 | a: other deleted -> r | |
311 | removing a |
|
310 | removing a | |
312 | b: remote created -> g |
|
311 | b: remote created -> g | |
313 | getting b |
|
312 | getting b | |
314 | preserving rev for resolve of rev |
|
313 | preserving rev for resolve of rev | |
315 | rev: versions differ -> m (premerge) |
|
314 | rev: versions differ -> m (premerge) | |
316 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
315 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
317 | merging rev |
|
316 | merging rev | |
318 | my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
317 | my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337 | |
319 | rev: versions differ -> m (merge) |
|
318 | rev: versions differ -> m (merge) | |
320 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
319 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
321 | my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
320 | my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337 | |
322 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
321 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
323 | merge tool returned: 0 |
|
322 | merge tool returned: 0 | |
324 | 1 files updated, 1 files merged, 1 files removed, 0 files unresolved |
|
323 | 1 files updated, 1 files merged, 1 files removed, 0 files unresolved | |
325 | (branch merge, don't forget to commit) |
|
324 | (branch merge, don't forget to commit) | |
326 | -------------- |
|
325 | -------------- | |
327 | M b |
|
326 | M b | |
328 | -------------- |
|
327 | -------------- | |
329 |
|
328 | |||
330 | $ tm "nm a b" " " " " "8 nothing" |
|
329 | $ tm "nm a b" " " " " "8 nothing" | |
331 | created new head |
|
330 | created new head | |
332 | -------------- |
|
331 | -------------- | |
333 | test L:nm a b R: W: - 8 nothing |
|
332 | test L:nm a b R: W: - 8 nothing | |
334 | -------------- |
|
333 | -------------- | |
335 | unmatched files in local: |
|
334 | unmatched files in local: | |
336 | b |
|
335 | b | |
337 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
336 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
338 | on local side: |
|
337 | on local side: | |
339 | src: 'a' -> dst: 'b' |
|
338 | src: 'a' -> dst: 'b' | |
340 | checking for directory renames |
|
339 | checking for directory renames | |
341 | resolving manifests |
|
340 | resolving manifests | |
342 | branchmerge: True, force: False, partial: False |
|
341 | branchmerge: True, force: False, partial: False | |
343 | ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336 |
|
342 | ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336 | |
|
343 | starting 4 threads for background file closing (?) | |||
344 | preserving rev for resolve of rev |
|
344 | preserving rev for resolve of rev | |
345 | starting 4 threads for background file closing (?) |
|
|||
346 | rev: versions differ -> m (premerge) |
|
345 | rev: versions differ -> m (premerge) | |
347 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
346 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
348 | merging rev |
|
347 | merging rev | |
349 | my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337 |
|
348 | my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337 | |
350 | rev: versions differ -> m (merge) |
|
349 | rev: versions differ -> m (merge) | |
351 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
350 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
352 | my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337 |
|
351 | my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337 | |
353 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
352 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
354 | merge tool returned: 0 |
|
353 | merge tool returned: 0 | |
355 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
354 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
356 | (branch merge, don't forget to commit) |
|
355 | (branch merge, don't forget to commit) | |
357 | -------------- |
|
356 | -------------- | |
358 | C b |
|
357 | C b | |
359 | -------------- |
|
358 | -------------- | |
360 |
|
359 | |||
361 | $ tm "um a b" "um a b" " " "9 do merge with ancestor in a" |
|
360 | $ tm "um a b" "um a b" " " "9 do merge with ancestor in a" | |
362 | created new head |
|
361 | created new head | |
363 | -------------- |
|
362 | -------------- | |
364 | test L:um a b R:um a b W: - 9 do merge with ancestor in a |
|
363 | test L:um a b R:um a b W: - 9 do merge with ancestor in a | |
365 | -------------- |
|
364 | -------------- | |
366 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
365 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
367 | on local side: |
|
366 | on local side: | |
368 | src: 'a' -> dst: 'b' * |
|
367 | src: 'a' -> dst: 'b' * | |
369 | on remote side: |
|
368 | on remote side: | |
370 | src: 'a' -> dst: 'b' * |
|
369 | src: 'a' -> dst: 'b' * | |
371 | checking for directory renames |
|
370 | checking for directory renames | |
372 | resolving manifests |
|
371 | resolving manifests | |
373 | branchmerge: True, force: False, partial: False |
|
372 | branchmerge: True, force: False, partial: False | |
374 | ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493 |
|
373 | ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493 | |
|
374 | starting 4 threads for background file closing (?) | |||
375 | preserving b for resolve of b |
|
375 | preserving b for resolve of b | |
376 | preserving rev for resolve of rev |
|
376 | preserving rev for resolve of rev | |
377 | starting 4 threads for background file closing (?) |
|
|||
378 | b: both renamed from a -> m (premerge) |
|
377 | b: both renamed from a -> m (premerge) | |
379 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
378 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
380 | merging b |
|
379 | merging b | |
381 | my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337 |
|
380 | my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337 | |
382 | rev: versions differ -> m (premerge) |
|
381 | rev: versions differ -> m (premerge) | |
383 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
382 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
384 | merging rev |
|
383 | merging rev | |
385 | my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337 |
|
384 | my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337 | |
386 | b: both renamed from a -> m (merge) |
|
385 | b: both renamed from a -> m (merge) | |
387 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
386 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
388 | my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337 |
|
387 | my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337 | |
389 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) |
|
388 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) | |
390 | merge tool returned: 0 |
|
389 | merge tool returned: 0 | |
391 | rev: versions differ -> m (merge) |
|
390 | rev: versions differ -> m (merge) | |
392 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
391 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
393 | my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337 |
|
392 | my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337 | |
394 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
393 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
395 | merge tool returned: 0 |
|
394 | merge tool returned: 0 | |
396 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
395 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
397 | (branch merge, don't forget to commit) |
|
396 | (branch merge, don't forget to commit) | |
398 | -------------- |
|
397 | -------------- | |
399 | M b |
|
398 | M b | |
400 | -------------- |
|
399 | -------------- | |
401 |
|
400 | |||
402 |
|
401 | |||
403 | m "um a c" "um x c" " " "10 do merge with no ancestor" |
|
402 | m "um a c" "um x c" " " "10 do merge with no ancestor" | |
404 |
|
403 | |||
405 | $ tm "nm a b" "nm a c" " " "11 get c, keep b" |
|
404 | $ tm "nm a b" "nm a c" " " "11 get c, keep b" | |
406 | created new head |
|
405 | created new head | |
407 | -------------- |
|
406 | -------------- | |
408 | test L:nm a b R:nm a c W: - 11 get c, keep b |
|
407 | test L:nm a b R:nm a c W: - 11 get c, keep b | |
409 | -------------- |
|
408 | -------------- | |
410 | unmatched files in local: |
|
409 | unmatched files in local: | |
411 | b |
|
410 | b | |
412 | unmatched files in other: |
|
411 | unmatched files in other: | |
413 | c |
|
412 | c | |
414 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
413 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
415 | on local side: |
|
414 | on local side: | |
416 | src: 'a' -> dst: 'b' ! |
|
415 | src: 'a' -> dst: 'b' ! | |
417 | on remote side: |
|
416 | on remote side: | |
418 | src: 'a' -> dst: 'c' ! |
|
417 | src: 'a' -> dst: 'c' ! | |
419 | checking for directory renames |
|
418 | checking for directory renames | |
420 | resolving manifests |
|
419 | resolving manifests | |
421 | branchmerge: True, force: False, partial: False |
|
420 | branchmerge: True, force: False, partial: False | |
422 | ancestor: 924404dff337, local: 02963e448370+, remote: fe905ef2c33e |
|
421 | ancestor: 924404dff337, local: 02963e448370+, remote: fe905ef2c33e | |
423 | note: possible conflict - a was renamed multiple times to: |
|
422 | note: possible conflict - a was renamed multiple times to: | |
424 | b |
|
423 | b | |
425 | c |
|
424 | c | |
426 | c: remote created -> g |
|
425 | c: remote created -> g | |
427 | getting c |
|
426 | getting c | |
428 | preserving rev for resolve of rev |
|
427 | preserving rev for resolve of rev | |
429 | rev: versions differ -> m (premerge) |
|
428 | rev: versions differ -> m (premerge) | |
430 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
429 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
431 | merging rev |
|
430 | merging rev | |
432 | my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337 |
|
431 | my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337 | |
433 | rev: versions differ -> m (merge) |
|
432 | rev: versions differ -> m (merge) | |
434 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
433 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
435 | my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337 |
|
434 | my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337 | |
436 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
435 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
437 | merge tool returned: 0 |
|
436 | merge tool returned: 0 | |
438 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
437 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
439 | (branch merge, don't forget to commit) |
|
438 | (branch merge, don't forget to commit) | |
440 | -------------- |
|
439 | -------------- | |
441 | M c |
|
440 | M c | |
442 | C b |
|
441 | C b | |
443 | -------------- |
|
442 | -------------- | |
444 |
|
443 | |||
445 | $ tm "nc a b" "up b " " " "12 merge b no ancestor" |
|
444 | $ tm "nc a b" "up b " " " "12 merge b no ancestor" | |
446 | created new head |
|
445 | created new head | |
447 | -------------- |
|
446 | -------------- | |
448 | test L:nc a b R:up b W: - 12 merge b no ancestor |
|
447 | test L:nc a b R:up b W: - 12 merge b no ancestor | |
449 | -------------- |
|
448 | -------------- | |
450 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
449 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
451 | on local side: |
|
450 | on local side: | |
452 | src: 'a' -> dst: 'b' |
|
451 | src: 'a' -> dst: 'b' | |
453 | checking for directory renames |
|
452 | checking for directory renames | |
454 | resolving manifests |
|
453 | resolving manifests | |
455 | branchmerge: True, force: False, partial: False |
|
454 | branchmerge: True, force: False, partial: False | |
456 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7 |
|
455 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7 | |
|
456 | starting 4 threads for background file closing (?) | |||
457 | preserving b for resolve of b |
|
457 | preserving b for resolve of b | |
458 | preserving rev for resolve of rev |
|
458 | preserving rev for resolve of rev | |
459 | starting 4 threads for background file closing (?) |
|
|||
460 | b: both created -> m (premerge) |
|
459 | b: both created -> m (premerge) | |
461 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
460 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
462 | merging b |
|
461 | merging b | |
463 | my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000 |
|
462 | my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000 | |
464 | rev: versions differ -> m (premerge) |
|
463 | rev: versions differ -> m (premerge) | |
465 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
464 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
466 | merging rev |
|
465 | merging rev | |
467 | my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337 |
|
466 | my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337 | |
468 | b: both created -> m (merge) |
|
467 | b: both created -> m (merge) | |
469 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
468 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
470 | my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000 |
|
469 | my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000 | |
471 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) |
|
470 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) | |
472 | merge tool returned: 0 |
|
471 | merge tool returned: 0 | |
473 | rev: versions differ -> m (merge) |
|
472 | rev: versions differ -> m (merge) | |
474 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
473 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
475 | my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337 |
|
474 | my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337 | |
476 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
475 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
477 | merge tool returned: 0 |
|
476 | merge tool returned: 0 | |
478 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
477 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
479 | (branch merge, don't forget to commit) |
|
478 | (branch merge, don't forget to commit) | |
480 | -------------- |
|
479 | -------------- | |
481 | M b |
|
480 | M b | |
482 | C a |
|
481 | C a | |
483 | -------------- |
|
482 | -------------- | |
484 |
|
483 | |||
485 | $ tm "up b " "nm a b" " " "13 merge b no ancestor" |
|
484 | $ tm "up b " "nm a b" " " "13 merge b no ancestor" | |
486 | created new head |
|
485 | created new head | |
487 | -------------- |
|
486 | -------------- | |
488 | test L:up b R:nm a b W: - 13 merge b no ancestor |
|
487 | test L:up b R:nm a b W: - 13 merge b no ancestor | |
489 | -------------- |
|
488 | -------------- | |
490 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
489 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
491 | on remote side: |
|
490 | on remote side: | |
492 | src: 'a' -> dst: 'b' |
|
491 | src: 'a' -> dst: 'b' | |
493 | checking for directory renames |
|
492 | checking for directory renames | |
494 | resolving manifests |
|
493 | resolving manifests | |
495 | branchmerge: True, force: False, partial: False |
|
494 | branchmerge: True, force: False, partial: False | |
496 | ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a |
|
495 | ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | |
497 | a: other deleted -> r |
|
496 | a: other deleted -> r | |
498 | removing a |
|
497 | removing a | |
|
498 | starting 4 threads for background file closing (?) | |||
499 | preserving b for resolve of b |
|
499 | preserving b for resolve of b | |
500 | preserving rev for resolve of rev |
|
500 | preserving rev for resolve of rev | |
501 | starting 4 threads for background file closing (?) |
|
|||
502 | b: both created -> m (premerge) |
|
501 | b: both created -> m (premerge) | |
503 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
502 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
504 | merging b |
|
503 | merging b | |
505 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 |
|
504 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 | |
506 | rev: versions differ -> m (premerge) |
|
505 | rev: versions differ -> m (premerge) | |
507 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
506 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
508 | merging rev |
|
507 | merging rev | |
509 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
508 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 | |
510 | b: both created -> m (merge) |
|
509 | b: both created -> m (merge) | |
511 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
510 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
512 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 |
|
511 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 | |
513 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) |
|
512 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) | |
514 | merge tool returned: 0 |
|
513 | merge tool returned: 0 | |
515 | rev: versions differ -> m (merge) |
|
514 | rev: versions differ -> m (merge) | |
516 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
515 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
517 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
516 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 | |
518 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
517 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
519 | merge tool returned: 0 |
|
518 | merge tool returned: 0 | |
520 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved |
|
519 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved | |
521 | (branch merge, don't forget to commit) |
|
520 | (branch merge, don't forget to commit) | |
522 | -------------- |
|
521 | -------------- | |
523 | M b |
|
522 | M b | |
524 | -------------- |
|
523 | -------------- | |
525 |
|
524 | |||
526 | $ tm "nc a b" "up a b" " " "14 merge b no ancestor" |
|
525 | $ tm "nc a b" "up a b" " " "14 merge b no ancestor" | |
527 | created new head |
|
526 | created new head | |
528 | -------------- |
|
527 | -------------- | |
529 | test L:nc a b R:up a b W: - 14 merge b no ancestor |
|
528 | test L:nc a b R:up a b W: - 14 merge b no ancestor | |
530 | -------------- |
|
529 | -------------- | |
531 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
530 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
532 | on local side: |
|
531 | on local side: | |
533 | src: 'a' -> dst: 'b' * |
|
532 | src: 'a' -> dst: 'b' * | |
534 | checking for directory renames |
|
533 | checking for directory renames | |
535 | resolving manifests |
|
534 | resolving manifests | |
536 | branchmerge: True, force: False, partial: False |
|
535 | branchmerge: True, force: False, partial: False | |
537 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a |
|
536 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | |
538 | a: remote is newer -> g |
|
537 | a: remote is newer -> g | |
539 | getting a |
|
538 | getting a | |
540 | preserving b for resolve of b |
|
539 | preserving b for resolve of b | |
541 | preserving rev for resolve of rev |
|
540 | preserving rev for resolve of rev | |
542 | b: both renamed from a -> m (premerge) |
|
541 | b: both renamed from a -> m (premerge) | |
543 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
542 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
544 | merging b |
|
543 | merging b | |
545 | my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337 |
|
544 | my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337 | |
546 | premerge successful |
|
545 | premerge successful | |
547 | rev: versions differ -> m (premerge) |
|
546 | rev: versions differ -> m (premerge) | |
548 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
547 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
549 | merging rev |
|
548 | merging rev | |
550 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
549 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 | |
551 | rev: versions differ -> m (merge) |
|
550 | rev: versions differ -> m (merge) | |
552 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
551 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
553 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
552 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 | |
554 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
553 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
555 | merge tool returned: 0 |
|
554 | merge tool returned: 0 | |
556 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
555 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
557 | (branch merge, don't forget to commit) |
|
556 | (branch merge, don't forget to commit) | |
558 | -------------- |
|
557 | -------------- | |
559 | M a |
|
558 | M a | |
560 | M b |
|
559 | M b | |
561 | -------------- |
|
560 | -------------- | |
562 |
|
561 | |||
563 | $ tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" |
|
562 | $ tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" | |
564 | created new head |
|
563 | created new head | |
565 | -------------- |
|
564 | -------------- | |
566 | test L:up b R:nm a b W: - 15 merge b no ancestor, remove a |
|
565 | test L:up b R:nm a b W: - 15 merge b no ancestor, remove a | |
567 | -------------- |
|
566 | -------------- | |
568 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
567 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
569 | on remote side: |
|
568 | on remote side: | |
570 | src: 'a' -> dst: 'b' |
|
569 | src: 'a' -> dst: 'b' | |
571 | checking for directory renames |
|
570 | checking for directory renames | |
572 | resolving manifests |
|
571 | resolving manifests | |
573 | branchmerge: True, force: False, partial: False |
|
572 | branchmerge: True, force: False, partial: False | |
574 | ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a |
|
573 | ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | |
575 | a: other deleted -> r |
|
574 | a: other deleted -> r | |
576 | removing a |
|
575 | removing a | |
|
576 | starting 4 threads for background file closing (?) | |||
577 | preserving b for resolve of b |
|
577 | preserving b for resolve of b | |
578 | preserving rev for resolve of rev |
|
578 | preserving rev for resolve of rev | |
579 | starting 4 threads for background file closing (?) |
|
|||
580 | b: both created -> m (premerge) |
|
579 | b: both created -> m (premerge) | |
581 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
580 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
582 | merging b |
|
581 | merging b | |
583 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 |
|
582 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 | |
584 | rev: versions differ -> m (premerge) |
|
583 | rev: versions differ -> m (premerge) | |
585 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
584 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
586 | merging rev |
|
585 | merging rev | |
587 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
586 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 | |
588 | b: both created -> m (merge) |
|
587 | b: both created -> m (merge) | |
589 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
588 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
590 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 |
|
589 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 | |
591 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) |
|
590 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) | |
592 | merge tool returned: 0 |
|
591 | merge tool returned: 0 | |
593 | rev: versions differ -> m (merge) |
|
592 | rev: versions differ -> m (merge) | |
594 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
593 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
595 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
594 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 | |
596 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
595 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
597 | merge tool returned: 0 |
|
596 | merge tool returned: 0 | |
598 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved |
|
597 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved | |
599 | (branch merge, don't forget to commit) |
|
598 | (branch merge, don't forget to commit) | |
600 | -------------- |
|
599 | -------------- | |
601 | M b |
|
600 | M b | |
602 | -------------- |
|
601 | -------------- | |
603 |
|
602 | |||
604 | $ tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" |
|
603 | $ tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" | |
605 | created new head |
|
604 | created new head | |
606 | -------------- |
|
605 | -------------- | |
607 | test L:nc a b R:up a b W: - 16 get a, merge b no ancestor |
|
606 | test L:nc a b R:up a b W: - 16 get a, merge b no ancestor | |
608 | -------------- |
|
607 | -------------- | |
609 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
608 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
610 | on local side: |
|
609 | on local side: | |
611 | src: 'a' -> dst: 'b' * |
|
610 | src: 'a' -> dst: 'b' * | |
612 | checking for directory renames |
|
611 | checking for directory renames | |
613 | resolving manifests |
|
612 | resolving manifests | |
614 | branchmerge: True, force: False, partial: False |
|
613 | branchmerge: True, force: False, partial: False | |
615 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a |
|
614 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | |
616 | a: remote is newer -> g |
|
615 | a: remote is newer -> g | |
617 | getting a |
|
616 | getting a | |
618 | preserving b for resolve of b |
|
617 | preserving b for resolve of b | |
619 | preserving rev for resolve of rev |
|
618 | preserving rev for resolve of rev | |
620 | b: both renamed from a -> m (premerge) |
|
619 | b: both renamed from a -> m (premerge) | |
621 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
620 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
622 | merging b |
|
621 | merging b | |
623 | my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337 |
|
622 | my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337 | |
624 | premerge successful |
|
623 | premerge successful | |
625 | rev: versions differ -> m (premerge) |
|
624 | rev: versions differ -> m (premerge) | |
626 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
625 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
627 | merging rev |
|
626 | merging rev | |
628 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
627 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 | |
629 | rev: versions differ -> m (merge) |
|
628 | rev: versions differ -> m (merge) | |
630 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
629 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
631 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
630 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 | |
632 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
631 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
633 | merge tool returned: 0 |
|
632 | merge tool returned: 0 | |
634 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
633 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
635 | (branch merge, don't forget to commit) |
|
634 | (branch merge, don't forget to commit) | |
636 | -------------- |
|
635 | -------------- | |
637 | M a |
|
636 | M a | |
638 | M b |
|
637 | M b | |
639 | -------------- |
|
638 | -------------- | |
640 |
|
639 | |||
641 | $ tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" |
|
640 | $ tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" | |
642 | created new head |
|
641 | created new head | |
643 | -------------- |
|
642 | -------------- | |
644 | test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor |
|
643 | test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor | |
645 | -------------- |
|
644 | -------------- | |
646 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
645 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
647 | on remote side: |
|
646 | on remote side: | |
648 | src: 'a' -> dst: 'b' * |
|
647 | src: 'a' -> dst: 'b' * | |
649 | checking for directory renames |
|
648 | checking for directory renames | |
650 | resolving manifests |
|
649 | resolving manifests | |
651 | branchmerge: True, force: False, partial: False |
|
650 | branchmerge: True, force: False, partial: False | |
652 | ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24 |
|
651 | ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24 | |
|
652 | starting 4 threads for background file closing (?) | |||
653 | preserving b for resolve of b |
|
653 | preserving b for resolve of b | |
654 | preserving rev for resolve of rev |
|
654 | preserving rev for resolve of rev | |
655 | starting 4 threads for background file closing (?) |
|
|||
656 | b: both renamed from a -> m (premerge) |
|
655 | b: both renamed from a -> m (premerge) | |
657 | starting 4 threads for background file closing (?) |
|
|||
658 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
656 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
659 | merging b |
|
657 | merging b | |
660 | my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337 |
|
658 | my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337 | |
661 | premerge successful |
|
659 | premerge successful | |
662 | rev: versions differ -> m (premerge) |
|
660 | rev: versions differ -> m (premerge) | |
663 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
661 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
664 | merging rev |
|
662 | merging rev | |
665 | my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337 |
|
663 | my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |
666 | rev: versions differ -> m (merge) |
|
664 | rev: versions differ -> m (merge) | |
667 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
665 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
668 | my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337 |
|
666 | my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |
669 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
667 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
670 | merge tool returned: 0 |
|
668 | merge tool returned: 0 | |
671 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
669 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
672 | (branch merge, don't forget to commit) |
|
670 | (branch merge, don't forget to commit) | |
673 | -------------- |
|
671 | -------------- | |
674 | M b |
|
672 | M b | |
675 | C a |
|
673 | C a | |
676 | -------------- |
|
674 | -------------- | |
677 |
|
675 | |||
678 | $ tm "nm a b" "up a b" " " "18 merge b no ancestor" |
|
676 | $ tm "nm a b" "up a b" " " "18 merge b no ancestor" | |
679 | created new head |
|
677 | created new head | |
680 | -------------- |
|
678 | -------------- | |
681 | test L:nm a b R:up a b W: - 18 merge b no ancestor |
|
679 | test L:nm a b R:up a b W: - 18 merge b no ancestor | |
682 | -------------- |
|
680 | -------------- | |
683 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
681 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
684 | on local side: |
|
682 | on local side: | |
685 | src: 'a' -> dst: 'b' * |
|
683 | src: 'a' -> dst: 'b' * | |
686 | checking for directory renames |
|
684 | checking for directory renames | |
687 | resolving manifests |
|
685 | resolving manifests | |
688 | branchmerge: True, force: False, partial: False |
|
686 | branchmerge: True, force: False, partial: False | |
689 | ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a |
|
687 | ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a | |
|
688 | starting 4 threads for background file closing (?) | |||
690 | preserving b for resolve of b |
|
689 | preserving b for resolve of b | |
691 | preserving rev for resolve of rev |
|
690 | preserving rev for resolve of rev | |
692 | starting 4 threads for background file closing (?) |
|
|||
693 | b: both renamed from a -> m (premerge) |
|
691 | b: both renamed from a -> m (premerge) | |
694 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
692 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
695 | merging b |
|
693 | merging b | |
696 | my b@02963e448370+ other b@8dbce441892a ancestor a@924404dff337 |
|
694 | my b@02963e448370+ other b@8dbce441892a ancestor a@924404dff337 | |
697 | premerge successful |
|
695 | premerge successful | |
698 | rev: versions differ -> m (premerge) |
|
696 | rev: versions differ -> m (premerge) | |
699 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
697 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
700 | merging rev |
|
698 | merging rev | |
701 | my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
699 | my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337 | |
702 | rev: versions differ -> m (merge) |
|
700 | rev: versions differ -> m (merge) | |
703 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
701 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
704 | my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
702 | my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337 | |
705 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
703 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
706 | merge tool returned: 0 |
|
704 | merge tool returned: 0 | |
707 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
705 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
708 | (branch merge, don't forget to commit) |
|
706 | (branch merge, don't forget to commit) | |
709 | -------------- |
|
707 | -------------- | |
710 | M b |
|
708 | M b | |
711 | -------------- |
|
709 | -------------- | |
712 |
|
710 | |||
713 | $ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" |
|
711 | $ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" | |
714 | created new head |
|
712 | created new head | |
715 | -------------- |
|
713 | -------------- | |
716 | test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a |
|
714 | test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a | |
717 | -------------- |
|
715 | -------------- | |
718 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
716 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
719 | on remote side: |
|
717 | on remote side: | |
720 | src: 'a' -> dst: 'b' * |
|
718 | src: 'a' -> dst: 'b' * | |
721 | checking for directory renames |
|
719 | checking for directory renames | |
722 | resolving manifests |
|
720 | resolving manifests | |
723 | branchmerge: True, force: False, partial: False |
|
721 | branchmerge: True, force: False, partial: False | |
724 | ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a |
|
722 | ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a | |
|
723 | starting 4 threads for background file closing (?) | |||
725 | preserving b for resolve of b |
|
724 | preserving b for resolve of b | |
726 | preserving rev for resolve of rev |
|
725 | preserving rev for resolve of rev | |
727 | starting 4 threads for background file closing (?) |
|
|||
728 | b: both renamed from a -> m (premerge) |
|
726 | b: both renamed from a -> m (premerge) | |
729 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
727 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
730 | merging b |
|
728 | merging b | |
731 | my b@0b76e65c8289+ other b@bdb19105162a ancestor a@924404dff337 |
|
729 | my b@0b76e65c8289+ other b@bdb19105162a ancestor a@924404dff337 | |
732 | premerge successful |
|
730 | premerge successful | |
733 | rev: versions differ -> m (premerge) |
|
731 | rev: versions differ -> m (premerge) | |
734 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
732 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
735 | merging rev |
|
733 | merging rev | |
736 | my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
734 | my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337 | |
737 | rev: versions differ -> m (merge) |
|
735 | rev: versions differ -> m (merge) | |
738 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
736 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
739 | my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337 |
|
737 | my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337 | |
740 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
738 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
741 | merge tool returned: 0 |
|
739 | merge tool returned: 0 | |
742 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
740 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
743 | (branch merge, don't forget to commit) |
|
741 | (branch merge, don't forget to commit) | |
744 | -------------- |
|
742 | -------------- | |
745 | M b |
|
743 | M b | |
746 | C a |
|
744 | C a | |
747 | -------------- |
|
745 | -------------- | |
748 |
|
746 | |||
749 | $ tm "up a " "um a b" " " "20 merge a and b to b, remove a" |
|
747 | $ tm "up a " "um a b" " " "20 merge a and b to b, remove a" | |
750 | created new head |
|
748 | created new head | |
751 | -------------- |
|
749 | -------------- | |
752 | test L:up a R:um a b W: - 20 merge a and b to b, remove a |
|
750 | test L:up a R:um a b W: - 20 merge a and b to b, remove a | |
753 | -------------- |
|
751 | -------------- | |
754 | unmatched files in other: |
|
752 | unmatched files in other: | |
755 | b |
|
753 | b | |
756 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
754 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
757 | on remote side: |
|
755 | on remote side: | |
758 | src: 'a' -> dst: 'b' * |
|
756 | src: 'a' -> dst: 'b' * | |
759 | checking for directory renames |
|
757 | checking for directory renames | |
760 | resolving manifests |
|
758 | resolving manifests | |
761 | branchmerge: True, force: False, partial: False |
|
759 | branchmerge: True, force: False, partial: False | |
762 | ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493 |
|
760 | ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493 | |
|
761 | starting 4 threads for background file closing (?) | |||
763 | preserving a for resolve of b |
|
762 | preserving a for resolve of b | |
764 | preserving rev for resolve of rev |
|
763 | preserving rev for resolve of rev | |
765 | removing a |
|
764 | removing a | |
766 | starting 4 threads for background file closing (?) |
|
|||
767 | b: remote moved from a -> m (premerge) |
|
765 | b: remote moved from a -> m (premerge) | |
768 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
766 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
769 | merging a and b to b |
|
767 | merging a and b to b | |
770 | my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337 |
|
768 | my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337 | |
771 | rev: versions differ -> m (premerge) |
|
769 | rev: versions differ -> m (premerge) | |
772 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
770 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
773 | merging rev |
|
771 | merging rev | |
774 | my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337 |
|
772 | my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337 | |
775 | b: remote moved from a -> m (merge) |
|
773 | b: remote moved from a -> m (merge) | |
776 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
774 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
777 | my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337 |
|
775 | my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337 | |
778 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) |
|
776 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) | |
779 | merge tool returned: 0 |
|
777 | merge tool returned: 0 | |
780 | rev: versions differ -> m (merge) |
|
778 | rev: versions differ -> m (merge) | |
781 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
779 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
782 | my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337 |
|
780 | my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337 | |
783 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
781 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
784 | merge tool returned: 0 |
|
782 | merge tool returned: 0 | |
785 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
783 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
786 | (branch merge, don't forget to commit) |
|
784 | (branch merge, don't forget to commit) | |
787 | -------------- |
|
785 | -------------- | |
788 | M b |
|
786 | M b | |
789 | a |
|
787 | a | |
790 | -------------- |
|
788 | -------------- | |
791 |
|
789 | |||
792 | $ tm "um a b" "up a " " " "21 merge a and b to b" |
|
790 | $ tm "um a b" "up a " " " "21 merge a and b to b" | |
793 | created new head |
|
791 | created new head | |
794 | -------------- |
|
792 | -------------- | |
795 | test L:um a b R:up a W: - 21 merge a and b to b |
|
793 | test L:um a b R:up a W: - 21 merge a and b to b | |
796 | -------------- |
|
794 | -------------- | |
797 | unmatched files in local: |
|
795 | unmatched files in local: | |
798 | b |
|
796 | b | |
799 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
797 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
800 | on local side: |
|
798 | on local side: | |
801 | src: 'a' -> dst: 'b' * |
|
799 | src: 'a' -> dst: 'b' * | |
802 | checking for directory renames |
|
800 | checking for directory renames | |
803 | resolving manifests |
|
801 | resolving manifests | |
804 | branchmerge: True, force: False, partial: False |
|
802 | branchmerge: True, force: False, partial: False | |
805 | ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71 |
|
803 | ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71 | |
|
804 | starting 4 threads for background file closing (?) | |||
806 | preserving b for resolve of b |
|
805 | preserving b for resolve of b | |
807 | preserving rev for resolve of rev |
|
806 | preserving rev for resolve of rev | |
808 | starting 4 threads for background file closing (?) |
|
|||
809 | b: local copied/moved from a -> m (premerge) |
|
807 | b: local copied/moved from a -> m (premerge) | |
810 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
808 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
811 | merging b and a to b |
|
809 | merging b and a to b | |
812 | my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337 |
|
810 | my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337 | |
813 | rev: versions differ -> m (premerge) |
|
811 | rev: versions differ -> m (premerge) | |
814 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
812 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
815 | merging rev |
|
813 | merging rev | |
816 | my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
814 | my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
817 | b: local copied/moved from a -> m (merge) |
|
815 | b: local copied/moved from a -> m (merge) | |
818 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
816 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
819 | my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337 |
|
817 | my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337 | |
820 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) |
|
818 | launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob) | |
821 | merge tool returned: 0 |
|
819 | merge tool returned: 0 | |
822 | rev: versions differ -> m (merge) |
|
820 | rev: versions differ -> m (merge) | |
823 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
821 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
824 | my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
822 | my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
825 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
823 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
826 | merge tool returned: 0 |
|
824 | merge tool returned: 0 | |
827 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
825 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
828 | (branch merge, don't forget to commit) |
|
826 | (branch merge, don't forget to commit) | |
829 | -------------- |
|
827 | -------------- | |
830 | M b |
|
828 | M b | |
831 | a |
|
829 | a | |
832 | -------------- |
|
830 | -------------- | |
833 |
|
831 | |||
834 |
|
832 | |||
835 | m "nm a b" "um x a" " " "22 get a, keep b" |
|
833 | m "nm a b" "um x a" " " "22 get a, keep b" | |
836 |
|
834 | |||
837 | $ tm "nm a b" "up a c" " " "23 get c, keep b" |
|
835 | $ tm "nm a b" "up a c" " " "23 get c, keep b" | |
838 | created new head |
|
836 | created new head | |
839 | -------------- |
|
837 | -------------- | |
840 | test L:nm a b R:up a c W: - 23 get c, keep b |
|
838 | test L:nm a b R:up a c W: - 23 get c, keep b | |
841 | -------------- |
|
839 | -------------- | |
842 | unmatched files in local: |
|
840 | unmatched files in local: | |
843 | b |
|
841 | b | |
844 | unmatched files in other: |
|
842 | unmatched files in other: | |
845 | c |
|
843 | c | |
846 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
844 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
847 | on local side: |
|
845 | on local side: | |
848 | src: 'a' -> dst: 'b' * |
|
846 | src: 'a' -> dst: 'b' * | |
849 | checking for directory renames |
|
847 | checking for directory renames | |
850 | resolving manifests |
|
848 | resolving manifests | |
851 | branchmerge: True, force: False, partial: False |
|
849 | branchmerge: True, force: False, partial: False | |
852 | ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f |
|
850 | ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f | |
853 | c: remote created -> g |
|
851 | c: remote created -> g | |
854 | getting c |
|
852 | getting c | |
855 | preserving b for resolve of b |
|
853 | preserving b for resolve of b | |
856 | preserving rev for resolve of rev |
|
854 | preserving rev for resolve of rev | |
857 | b: local copied/moved from a -> m (premerge) |
|
855 | b: local copied/moved from a -> m (premerge) | |
858 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) |
|
856 | picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob) | |
859 | merging b and a to b |
|
857 | merging b and a to b | |
860 | my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337 |
|
858 | my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337 | |
861 | premerge successful |
|
859 | premerge successful | |
862 | rev: versions differ -> m (premerge) |
|
860 | rev: versions differ -> m (premerge) | |
863 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
861 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
864 | merging rev |
|
862 | merging rev | |
865 | my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337 |
|
863 | my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337 | |
866 | rev: versions differ -> m (merge) |
|
864 | rev: versions differ -> m (merge) | |
867 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) |
|
865 | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | |
868 | my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337 |
|
866 | my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337 | |
869 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) |
|
867 | launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob) | |
870 | merge tool returned: 0 |
|
868 | merge tool returned: 0 | |
871 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
869 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
872 | (branch merge, don't forget to commit) |
|
870 | (branch merge, don't forget to commit) | |
873 | -------------- |
|
871 | -------------- | |
874 | M b |
|
872 | M b | |
875 | a |
|
873 | a | |
876 | M c |
|
874 | M c | |
877 | -------------- |
|
875 | -------------- | |
878 |
|
876 | |||
879 |
|
877 | |||
880 | $ cd .. |
|
878 | $ cd .. | |
881 |
|
879 | |||
882 |
|
880 | |||
883 | Systematic and terse testing of merge merges and ancestor calculation: |
|
881 | Systematic and terse testing of merge merges and ancestor calculation: | |
884 |
|
882 | |||
885 | Expected result: |
|
883 | Expected result: | |
886 |
|
884 | |||
887 | \ a m1 m2 dst |
|
885 | \ a m1 m2 dst | |
888 | 0 - f f f "versions differ" |
|
886 | 0 - f f f "versions differ" | |
889 | 1 f g g g "versions differ" |
|
887 | 1 f g g g "versions differ" | |
890 | 2 f f f f "versions differ" |
|
888 | 2 f f f f "versions differ" | |
891 | 3 f f g f+g "remote copied to " + f |
|
889 | 3 f f g f+g "remote copied to " + f | |
892 | 4 f f g g "remote moved to " + f |
|
890 | 4 f f g g "remote moved to " + f | |
893 | 5 f g f f+g "local copied to " + f2 |
|
891 | 5 f g f f+g "local copied to " + f2 | |
894 | 6 f g f g "local moved to " + f2 |
|
892 | 6 f g f g "local moved to " + f2 | |
895 | 7 - (f) f f "remote differs from untracked local" |
|
893 | 7 - (f) f f "remote differs from untracked local" | |
896 | 8 f (f) f f "remote differs from untracked local" |
|
894 | 8 f (f) f f "remote differs from untracked local" | |
897 |
|
895 | |||
898 | $ hg init ancestortest |
|
896 | $ hg init ancestortest | |
899 | $ cd ancestortest |
|
897 | $ cd ancestortest | |
900 | $ for x in 1 2 3 4 5 6 8; do mkdir $x; echo a > $x/f; done |
|
898 | $ for x in 1 2 3 4 5 6 8; do mkdir $x; echo a > $x/f; done | |
901 | $ hg ci -Aqm "a" |
|
899 | $ hg ci -Aqm "a" | |
902 | $ mkdir 0 |
|
900 | $ mkdir 0 | |
903 | $ touch 0/f |
|
901 | $ touch 0/f | |
904 | $ hg mv 1/f 1/g |
|
902 | $ hg mv 1/f 1/g | |
905 | $ hg cp 5/f 5/g |
|
903 | $ hg cp 5/f 5/g | |
906 | $ hg mv 6/f 6/g |
|
904 | $ hg mv 6/f 6/g | |
907 | $ hg rm 8/f |
|
905 | $ hg rm 8/f | |
908 | $ for x in */*; do echo m1 > $x; done |
|
906 | $ for x in */*; do echo m1 > $x; done | |
909 | $ hg ci -Aqm "m1" |
|
907 | $ hg ci -Aqm "m1" | |
910 | $ hg up -qr0 |
|
908 | $ hg up -qr0 | |
911 | $ mkdir 0 7 |
|
909 | $ mkdir 0 7 | |
912 | $ touch 0/f 7/f |
|
910 | $ touch 0/f 7/f | |
913 | $ hg mv 1/f 1/g |
|
911 | $ hg mv 1/f 1/g | |
914 | $ hg cp 3/f 3/g |
|
912 | $ hg cp 3/f 3/g | |
915 | $ hg mv 4/f 4/g |
|
913 | $ hg mv 4/f 4/g | |
916 | $ for x in */*; do echo m2 > $x; done |
|
914 | $ for x in */*; do echo m2 > $x; done | |
917 | $ hg ci -Aqm "m2" |
|
915 | $ hg ci -Aqm "m2" | |
918 | $ hg up -qr1 |
|
916 | $ hg up -qr1 | |
919 | $ mkdir 7 8 |
|
917 | $ mkdir 7 8 | |
920 | $ echo m > 7/f |
|
918 | $ echo m > 7/f | |
921 | $ echo m > 8/f |
|
919 | $ echo m > 8/f | |
922 | $ hg merge -f --tool internal:dump -v --debug -r2 | sed '/^resolving manifests/,$d' 2> /dev/null |
|
920 | $ hg merge -f --tool internal:dump -v --debug -r2 | sed '/^resolving manifests/,$d' 2> /dev/null | |
923 | unmatched files in local: |
|
921 | unmatched files in local: | |
924 | 5/g |
|
922 | 5/g | |
925 | 6/g |
|
923 | 6/g | |
926 | unmatched files in other: |
|
924 | unmatched files in other: | |
927 | 3/g |
|
925 | 3/g | |
928 | 4/g |
|
926 | 4/g | |
929 | 7/f |
|
927 | 7/f | |
930 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
|
928 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | |
931 | on local side: |
|
929 | on local side: | |
932 | src: '1/f' -> dst: '1/g' * |
|
930 | src: '1/f' -> dst: '1/g' * | |
933 | src: '5/f' -> dst: '5/g' * |
|
931 | src: '5/f' -> dst: '5/g' * | |
934 | src: '6/f' -> dst: '6/g' * |
|
932 | src: '6/f' -> dst: '6/g' * | |
935 | on remote side: |
|
933 | on remote side: | |
936 | src: '1/f' -> dst: '1/g' * |
|
934 | src: '1/f' -> dst: '1/g' * | |
937 | src: '3/f' -> dst: '3/g' * |
|
935 | src: '3/f' -> dst: '3/g' * | |
938 | src: '4/f' -> dst: '4/g' * |
|
936 | src: '4/f' -> dst: '4/g' * | |
939 | checking for directory renames |
|
937 | checking for directory renames | |
940 | $ hg mani |
|
938 | $ hg mani | |
941 | 0/f |
|
939 | 0/f | |
942 | 1/g |
|
940 | 1/g | |
943 | 2/f |
|
941 | 2/f | |
944 | 3/f |
|
942 | 3/f | |
945 | 4/f |
|
943 | 4/f | |
946 | 5/f |
|
944 | 5/f | |
947 | 5/g |
|
945 | 5/g | |
948 | 6/g |
|
946 | 6/g | |
949 | $ for f in */*; do echo $f:; cat $f; done |
|
947 | $ for f in */*; do echo $f:; cat $f; done | |
950 | 0/f: |
|
948 | 0/f: | |
951 | m1 |
|
949 | m1 | |
952 | 0/f.base: |
|
950 | 0/f.base: | |
953 | 0/f.local: |
|
951 | 0/f.local: | |
954 | m1 |
|
952 | m1 | |
955 | 0/f.orig: |
|
953 | 0/f.orig: | |
956 | m1 |
|
954 | m1 | |
957 | 0/f.other: |
|
955 | 0/f.other: | |
958 | m2 |
|
956 | m2 | |
959 | 1/g: |
|
957 | 1/g: | |
960 | m1 |
|
958 | m1 | |
961 | 1/g.base: |
|
959 | 1/g.base: | |
962 | a |
|
960 | a | |
963 | 1/g.local: |
|
961 | 1/g.local: | |
964 | m1 |
|
962 | m1 | |
965 | 1/g.orig: |
|
963 | 1/g.orig: | |
966 | m1 |
|
964 | m1 | |
967 | 1/g.other: |
|
965 | 1/g.other: | |
968 | m2 |
|
966 | m2 | |
969 | 2/f: |
|
967 | 2/f: | |
970 | m1 |
|
968 | m1 | |
971 | 2/f.base: |
|
969 | 2/f.base: | |
972 | a |
|
970 | a | |
973 | 2/f.local: |
|
971 | 2/f.local: | |
974 | m1 |
|
972 | m1 | |
975 | 2/f.orig: |
|
973 | 2/f.orig: | |
976 | m1 |
|
974 | m1 | |
977 | 2/f.other: |
|
975 | 2/f.other: | |
978 | m2 |
|
976 | m2 | |
979 | 3/f: |
|
977 | 3/f: | |
980 | m1 |
|
978 | m1 | |
981 | 3/f.base: |
|
979 | 3/f.base: | |
982 | a |
|
980 | a | |
983 | 3/f.local: |
|
981 | 3/f.local: | |
984 | m1 |
|
982 | m1 | |
985 | 3/f.orig: |
|
983 | 3/f.orig: | |
986 | m1 |
|
984 | m1 | |
987 | 3/f.other: |
|
985 | 3/f.other: | |
988 | m2 |
|
986 | m2 | |
989 | 3/g: |
|
987 | 3/g: | |
990 | m1 |
|
988 | m1 | |
991 | 3/g.base: |
|
989 | 3/g.base: | |
992 | a |
|
990 | a | |
993 | 3/g.local: |
|
991 | 3/g.local: | |
994 | m1 |
|
992 | m1 | |
995 | 3/g.orig: |
|
993 | 3/g.orig: | |
996 | m1 |
|
994 | m1 | |
997 | 3/g.other: |
|
995 | 3/g.other: | |
998 | m2 |
|
996 | m2 | |
999 | 4/g: |
|
997 | 4/g: | |
1000 | m1 |
|
998 | m1 | |
1001 | 4/g.base: |
|
999 | 4/g.base: | |
1002 | a |
|
1000 | a | |
1003 | 4/g.local: |
|
1001 | 4/g.local: | |
1004 | m1 |
|
1002 | m1 | |
1005 | 4/g.orig: |
|
1003 | 4/g.orig: | |
1006 | m1 |
|
1004 | m1 | |
1007 | 4/g.other: |
|
1005 | 4/g.other: | |
1008 | m2 |
|
1006 | m2 | |
1009 | 5/f: |
|
1007 | 5/f: | |
1010 | m1 |
|
1008 | m1 | |
1011 | 5/f.base: |
|
1009 | 5/f.base: | |
1012 | a |
|
1010 | a | |
1013 | 5/f.local: |
|
1011 | 5/f.local: | |
1014 | m1 |
|
1012 | m1 | |
1015 | 5/f.orig: |
|
1013 | 5/f.orig: | |
1016 | m1 |
|
1014 | m1 | |
1017 | 5/f.other: |
|
1015 | 5/f.other: | |
1018 | m2 |
|
1016 | m2 | |
1019 | 5/g: |
|
1017 | 5/g: | |
1020 | m1 |
|
1018 | m1 | |
1021 | 5/g.base: |
|
1019 | 5/g.base: | |
1022 | a |
|
1020 | a | |
1023 | 5/g.local: |
|
1021 | 5/g.local: | |
1024 | m1 |
|
1022 | m1 | |
1025 | 5/g.orig: |
|
1023 | 5/g.orig: | |
1026 | m1 |
|
1024 | m1 | |
1027 | 5/g.other: |
|
1025 | 5/g.other: | |
1028 | m2 |
|
1026 | m2 | |
1029 | 6/g: |
|
1027 | 6/g: | |
1030 | m1 |
|
1028 | m1 | |
1031 | 6/g.base: |
|
1029 | 6/g.base: | |
1032 | a |
|
1030 | a | |
1033 | 6/g.local: |
|
1031 | 6/g.local: | |
1034 | m1 |
|
1032 | m1 | |
1035 | 6/g.orig: |
|
1033 | 6/g.orig: | |
1036 | m1 |
|
1034 | m1 | |
1037 | 6/g.other: |
|
1035 | 6/g.other: | |
1038 | m2 |
|
1036 | m2 | |
1039 | 7/f: |
|
1037 | 7/f: | |
1040 | m |
|
1038 | m | |
1041 | 7/f.base: |
|
1039 | 7/f.base: | |
1042 | 7/f.local: |
|
1040 | 7/f.local: | |
1043 | m |
|
1041 | m | |
1044 | 7/f.orig: |
|
1042 | 7/f.orig: | |
1045 | m |
|
1043 | m | |
1046 | 7/f.other: |
|
1044 | 7/f.other: | |
1047 | m2 |
|
1045 | m2 | |
1048 | 8/f: |
|
1046 | 8/f: | |
1049 | m2 |
|
1047 | m2 | |
1050 | $ cd .. |
|
1048 | $ cd .. |
@@ -1,2035 +1,2035 b'' | |||||
1 | Let commit recurse into subrepos by default to match pre-2.0 behavior: |
|
1 | Let commit recurse into subrepos by default to match pre-2.0 behavior: | |
2 |
|
2 | |||
3 | $ echo "[ui]" >> $HGRCPATH |
|
3 | $ echo "[ui]" >> $HGRCPATH | |
4 | $ echo "commitsubrepos = Yes" >> $HGRCPATH |
|
4 | $ echo "commitsubrepos = Yes" >> $HGRCPATH | |
5 |
|
5 | |||
6 | $ hg init t |
|
6 | $ hg init t | |
7 | $ cd t |
|
7 | $ cd t | |
8 |
|
8 | |||
9 | first revision, no sub |
|
9 | first revision, no sub | |
10 |
|
10 | |||
11 | $ echo a > a |
|
11 | $ echo a > a | |
12 | $ hg ci -Am0 |
|
12 | $ hg ci -Am0 | |
13 | adding a |
|
13 | adding a | |
14 |
|
14 | |||
15 | add first sub |
|
15 | add first sub | |
16 |
|
16 | |||
17 | $ echo s = s > .hgsub |
|
17 | $ echo s = s > .hgsub | |
18 | $ hg add .hgsub |
|
18 | $ hg add .hgsub | |
19 | $ hg init s |
|
19 | $ hg init s | |
20 | $ echo a > s/a |
|
20 | $ echo a > s/a | |
21 |
|
21 | |||
22 | Issue2232: committing a subrepo without .hgsub |
|
22 | Issue2232: committing a subrepo without .hgsub | |
23 |
|
23 | |||
24 | $ hg ci -mbad s |
|
24 | $ hg ci -mbad s | |
25 | abort: can't commit subrepos without .hgsub |
|
25 | abort: can't commit subrepos without .hgsub | |
26 | [255] |
|
26 | [255] | |
27 |
|
27 | |||
28 | $ hg -R s add s/a |
|
28 | $ hg -R s add s/a | |
29 | $ hg files -S |
|
29 | $ hg files -S | |
30 | .hgsub |
|
30 | .hgsub | |
31 | a |
|
31 | a | |
32 | s/a |
|
32 | s/a | |
33 |
|
33 | |||
34 | `hg files` respects ui.relative-paths |
|
34 | `hg files` respects ui.relative-paths | |
35 | BROKEN: shows subrepo paths relative to the subrepo |
|
35 | BROKEN: shows subrepo paths relative to the subrepo | |
36 | $ hg files -S --config ui.relative-paths=no |
|
36 | $ hg files -S --config ui.relative-paths=no | |
37 | .hgsub |
|
37 | .hgsub | |
38 | a |
|
38 | a | |
39 | s/a |
|
39 | s/a | |
40 |
|
40 | |||
41 | $ hg -R s ci -Ams0 |
|
41 | $ hg -R s ci -Ams0 | |
42 | $ hg sum |
|
42 | $ hg sum | |
43 | parent: 0:f7b1eb17ad24 tip |
|
43 | parent: 0:f7b1eb17ad24 tip | |
44 | 0 |
|
44 | 0 | |
45 | branch: default |
|
45 | branch: default | |
46 | commit: 1 added, 1 subrepos |
|
46 | commit: 1 added, 1 subrepos | |
47 | update: (current) |
|
47 | update: (current) | |
48 | phases: 1 draft |
|
48 | phases: 1 draft | |
49 | $ hg ci -m1 |
|
49 | $ hg ci -m1 | |
50 |
|
50 | |||
51 | test handling .hgsubstate "added" explicitly. |
|
51 | test handling .hgsubstate "added" explicitly. | |
52 |
|
52 | |||
53 | $ hg parents --template '{node}\n{files}\n' |
|
53 | $ hg parents --template '{node}\n{files}\n' | |
54 | 7cf8cfea66e410e8e3336508dfeec07b3192de51 |
|
54 | 7cf8cfea66e410e8e3336508dfeec07b3192de51 | |
55 | .hgsub .hgsubstate |
|
55 | .hgsub .hgsubstate | |
56 | $ hg rollback -q |
|
56 | $ hg rollback -q | |
57 | $ hg add .hgsubstate |
|
57 | $ hg add .hgsubstate | |
58 | $ hg ci -m1 |
|
58 | $ hg ci -m1 | |
59 | $ hg parents --template '{node}\n{files}\n' |
|
59 | $ hg parents --template '{node}\n{files}\n' | |
60 | 7cf8cfea66e410e8e3336508dfeec07b3192de51 |
|
60 | 7cf8cfea66e410e8e3336508dfeec07b3192de51 | |
61 | .hgsub .hgsubstate |
|
61 | .hgsub .hgsubstate | |
62 |
|
62 | |||
63 | Subrepopath which overlaps with filepath, does not change warnings in remove() |
|
63 | Subrepopath which overlaps with filepath, does not change warnings in remove() | |
64 |
|
64 | |||
65 | $ mkdir snot |
|
65 | $ mkdir snot | |
66 | $ touch snot/file |
|
66 | $ touch snot/file | |
67 | $ hg remove -S snot/file |
|
67 | $ hg remove -S snot/file | |
68 | not removing snot/file: file is untracked |
|
68 | not removing snot/file: file is untracked | |
69 | [1] |
|
69 | [1] | |
70 | $ hg cat snot/filenot |
|
70 | $ hg cat snot/filenot | |
71 | snot/filenot: no such file in rev 7cf8cfea66e4 |
|
71 | snot/filenot: no such file in rev 7cf8cfea66e4 | |
72 | [1] |
|
72 | [1] | |
73 | $ rm -r snot |
|
73 | $ rm -r snot | |
74 |
|
74 | |||
75 | Revert subrepo and test subrepo fileset keyword: |
|
75 | Revert subrepo and test subrepo fileset keyword: | |
76 |
|
76 | |||
77 | $ echo b > s/a |
|
77 | $ echo b > s/a | |
78 | $ hg revert --dry-run "set:subrepo('glob:s*')" |
|
78 | $ hg revert --dry-run "set:subrepo('glob:s*')" | |
79 | reverting subrepo s |
|
79 | reverting subrepo s | |
80 | reverting s/a |
|
80 | reverting s/a | |
81 | $ cat s/a |
|
81 | $ cat s/a | |
82 | b |
|
82 | b | |
83 | $ hg revert "set:subrepo('glob:s*')" |
|
83 | $ hg revert "set:subrepo('glob:s*')" | |
84 | reverting subrepo s |
|
84 | reverting subrepo s | |
85 | reverting s/a |
|
85 | reverting s/a | |
86 | $ cat s/a |
|
86 | $ cat s/a | |
87 | a |
|
87 | a | |
88 | $ rm s/a.orig |
|
88 | $ rm s/a.orig | |
89 |
|
89 | |||
90 | Revert subrepo with no backup. The "reverting s/a" line is gone since |
|
90 | Revert subrepo with no backup. The "reverting s/a" line is gone since | |
91 | we're really running 'hg update' in the subrepo: |
|
91 | we're really running 'hg update' in the subrepo: | |
92 |
|
92 | |||
93 | $ echo b > s/a |
|
93 | $ echo b > s/a | |
94 | $ hg revert --no-backup s |
|
94 | $ hg revert --no-backup s | |
95 | reverting subrepo s |
|
95 | reverting subrepo s | |
96 |
|
96 | |||
97 | Issue2022: update -C |
|
97 | Issue2022: update -C | |
98 |
|
98 | |||
99 | $ echo b > s/a |
|
99 | $ echo b > s/a | |
100 | $ hg sum |
|
100 | $ hg sum | |
101 | parent: 1:7cf8cfea66e4 tip |
|
101 | parent: 1:7cf8cfea66e4 tip | |
102 | 1 |
|
102 | 1 | |
103 | branch: default |
|
103 | branch: default | |
104 | commit: 1 subrepos |
|
104 | commit: 1 subrepos | |
105 | update: (current) |
|
105 | update: (current) | |
106 | phases: 2 draft |
|
106 | phases: 2 draft | |
107 | $ hg co -C 1 |
|
107 | $ hg co -C 1 | |
108 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
108 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
109 | $ hg sum |
|
109 | $ hg sum | |
110 | parent: 1:7cf8cfea66e4 tip |
|
110 | parent: 1:7cf8cfea66e4 tip | |
111 | 1 |
|
111 | 1 | |
112 | branch: default |
|
112 | branch: default | |
113 | commit: (clean) |
|
113 | commit: (clean) | |
114 | update: (current) |
|
114 | update: (current) | |
115 | phases: 2 draft |
|
115 | phases: 2 draft | |
116 |
|
116 | |||
117 | commands that require a clean repo should respect subrepos |
|
117 | commands that require a clean repo should respect subrepos | |
118 |
|
118 | |||
119 | $ echo b >> s/a |
|
119 | $ echo b >> s/a | |
120 | $ hg backout tip |
|
120 | $ hg backout tip | |
121 | abort: uncommitted changes in subrepository "s" |
|
121 | abort: uncommitted changes in subrepository "s" | |
122 | [255] |
|
122 | [255] | |
123 | $ hg revert -C -R s s/a |
|
123 | $ hg revert -C -R s s/a | |
124 |
|
124 | |||
125 | add sub sub |
|
125 | add sub sub | |
126 |
|
126 | |||
127 | $ echo ss = ss > s/.hgsub |
|
127 | $ echo ss = ss > s/.hgsub | |
128 | $ hg init s/ss |
|
128 | $ hg init s/ss | |
129 | $ echo a > s/ss/a |
|
129 | $ echo a > s/ss/a | |
130 | $ hg -R s add s/.hgsub |
|
130 | $ hg -R s add s/.hgsub | |
131 | $ hg -R s/ss add s/ss/a |
|
131 | $ hg -R s/ss add s/ss/a | |
132 | $ hg sum |
|
132 | $ hg sum | |
133 | parent: 1:7cf8cfea66e4 tip |
|
133 | parent: 1:7cf8cfea66e4 tip | |
134 | 1 |
|
134 | 1 | |
135 | branch: default |
|
135 | branch: default | |
136 | commit: 1 subrepos |
|
136 | commit: 1 subrepos | |
137 | update: (current) |
|
137 | update: (current) | |
138 | phases: 2 draft |
|
138 | phases: 2 draft | |
139 | $ hg ci -m2 |
|
139 | $ hg ci -m2 | |
140 | committing subrepository s |
|
140 | committing subrepository s | |
141 | committing subrepository s/ss |
|
141 | committing subrepository s/ss | |
142 | $ hg sum |
|
142 | $ hg sum | |
143 | parent: 2:df30734270ae tip |
|
143 | parent: 2:df30734270ae tip | |
144 | 2 |
|
144 | 2 | |
145 | branch: default |
|
145 | branch: default | |
146 | commit: (clean) |
|
146 | commit: (clean) | |
147 | update: (current) |
|
147 | update: (current) | |
148 | phases: 3 draft |
|
148 | phases: 3 draft | |
149 |
|
149 | |||
150 | test handling .hgsubstate "modified" explicitly. |
|
150 | test handling .hgsubstate "modified" explicitly. | |
151 |
|
151 | |||
152 | $ hg parents --template '{node}\n{files}\n' |
|
152 | $ hg parents --template '{node}\n{files}\n' | |
153 | df30734270ae757feb35e643b7018e818e78a9aa |
|
153 | df30734270ae757feb35e643b7018e818e78a9aa | |
154 | .hgsubstate |
|
154 | .hgsubstate | |
155 | $ hg rollback -q |
|
155 | $ hg rollback -q | |
156 | $ hg status -A .hgsubstate |
|
156 | $ hg status -A .hgsubstate | |
157 | M .hgsubstate |
|
157 | M .hgsubstate | |
158 | $ hg ci -m2 |
|
158 | $ hg ci -m2 | |
159 | $ hg parents --template '{node}\n{files}\n' |
|
159 | $ hg parents --template '{node}\n{files}\n' | |
160 | df30734270ae757feb35e643b7018e818e78a9aa |
|
160 | df30734270ae757feb35e643b7018e818e78a9aa | |
161 | .hgsubstate |
|
161 | .hgsubstate | |
162 |
|
162 | |||
163 | bump sub rev (and check it is ignored by ui.commitsubrepos) |
|
163 | bump sub rev (and check it is ignored by ui.commitsubrepos) | |
164 |
|
164 | |||
165 | $ echo b > s/a |
|
165 | $ echo b > s/a | |
166 | $ hg -R s ci -ms1 |
|
166 | $ hg -R s ci -ms1 | |
167 | $ hg --config ui.commitsubrepos=no ci -m3 |
|
167 | $ hg --config ui.commitsubrepos=no ci -m3 | |
168 |
|
168 | |||
169 | leave sub dirty (and check ui.commitsubrepos=no aborts the commit) |
|
169 | leave sub dirty (and check ui.commitsubrepos=no aborts the commit) | |
170 |
|
170 | |||
171 | $ echo c > s/a |
|
171 | $ echo c > s/a | |
172 | $ hg --config ui.commitsubrepos=no ci -m4 |
|
172 | $ hg --config ui.commitsubrepos=no ci -m4 | |
173 | abort: uncommitted changes in subrepository "s" |
|
173 | abort: uncommitted changes in subrepository "s" | |
174 | (use --subrepos for recursive commit) |
|
174 | (use --subrepos for recursive commit) | |
175 | [255] |
|
175 | [255] | |
176 | $ hg id |
|
176 | $ hg id | |
177 | f6affe3fbfaa+ tip |
|
177 | f6affe3fbfaa+ tip | |
178 | $ hg -R s ci -mc |
|
178 | $ hg -R s ci -mc | |
179 | $ hg id |
|
179 | $ hg id | |
180 | f6affe3fbfaa+ tip |
|
180 | f6affe3fbfaa+ tip | |
181 | $ echo d > s/a |
|
181 | $ echo d > s/a | |
182 | $ hg ci -m4 |
|
182 | $ hg ci -m4 | |
183 | committing subrepository s |
|
183 | committing subrepository s | |
184 | $ hg tip -R s |
|
184 | $ hg tip -R s | |
185 | changeset: 4:02dcf1d70411 |
|
185 | changeset: 4:02dcf1d70411 | |
186 | tag: tip |
|
186 | tag: tip | |
187 | user: test |
|
187 | user: test | |
188 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
188 | date: Thu Jan 01 00:00:00 1970 +0000 | |
189 | summary: 4 |
|
189 | summary: 4 | |
190 |
|
190 | |||
191 |
|
191 | |||
192 | check caching |
|
192 | check caching | |
193 |
|
193 | |||
194 | $ hg co 0 |
|
194 | $ hg co 0 | |
195 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
195 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
196 | $ hg debugsub |
|
196 | $ hg debugsub | |
197 |
|
197 | |||
198 | restore |
|
198 | restore | |
199 |
|
199 | |||
200 | $ hg co |
|
200 | $ hg co | |
201 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
201 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
202 | $ hg debugsub |
|
202 | $ hg debugsub | |
203 | path s |
|
203 | path s | |
204 | source s |
|
204 | source s | |
205 | revision 02dcf1d704118aee3ee306ccfa1910850d5b05ef |
|
205 | revision 02dcf1d704118aee3ee306ccfa1910850d5b05ef | |
206 |
|
206 | |||
207 | new branch for merge tests |
|
207 | new branch for merge tests | |
208 |
|
208 | |||
209 | $ hg co 1 |
|
209 | $ hg co 1 | |
210 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
210 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
211 | $ echo t = t >> .hgsub |
|
211 | $ echo t = t >> .hgsub | |
212 | $ hg init t |
|
212 | $ hg init t | |
213 | $ echo t > t/t |
|
213 | $ echo t > t/t | |
214 | $ hg -R t add t |
|
214 | $ hg -R t add t | |
215 | adding t/t |
|
215 | adding t/t | |
216 |
|
216 | |||
217 | 5 |
|
217 | 5 | |
218 |
|
218 | |||
219 | $ hg ci -m5 # add sub |
|
219 | $ hg ci -m5 # add sub | |
220 | committing subrepository t |
|
220 | committing subrepository t | |
221 | created new head |
|
221 | created new head | |
222 | $ echo t2 > t/t |
|
222 | $ echo t2 > t/t | |
223 |
|
223 | |||
224 | 6 |
|
224 | 6 | |
225 |
|
225 | |||
226 | $ hg st -R s |
|
226 | $ hg st -R s | |
227 | $ hg ci -m6 # change sub |
|
227 | $ hg ci -m6 # change sub | |
228 | committing subrepository t |
|
228 | committing subrepository t | |
229 | $ hg debugsub |
|
229 | $ hg debugsub | |
230 | path s |
|
230 | path s | |
231 | source s |
|
231 | source s | |
232 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
232 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
233 | path t |
|
233 | path t | |
234 | source t |
|
234 | source t | |
235 | revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad |
|
235 | revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad | |
236 | $ echo t3 > t/t |
|
236 | $ echo t3 > t/t | |
237 |
|
237 | |||
238 | 7 |
|
238 | 7 | |
239 |
|
239 | |||
240 | $ hg ci -m7 # change sub again for conflict test |
|
240 | $ hg ci -m7 # change sub again for conflict test | |
241 | committing subrepository t |
|
241 | committing subrepository t | |
242 | $ hg rm .hgsub |
|
242 | $ hg rm .hgsub | |
243 |
|
243 | |||
244 | 8 |
|
244 | 8 | |
245 |
|
245 | |||
246 | $ hg ci -m8 # remove sub |
|
246 | $ hg ci -m8 # remove sub | |
247 |
|
247 | |||
248 | test handling .hgsubstate "removed" explicitly. |
|
248 | test handling .hgsubstate "removed" explicitly. | |
249 |
|
249 | |||
250 | $ hg parents --template '{node}\n{files}\n' |
|
250 | $ hg parents --template '{node}\n{files}\n' | |
251 | 96615c1dad2dc8e3796d7332c77ce69156f7b78e |
|
251 | 96615c1dad2dc8e3796d7332c77ce69156f7b78e | |
252 | .hgsub .hgsubstate |
|
252 | .hgsub .hgsubstate | |
253 | $ hg rollback -q |
|
253 | $ hg rollback -q | |
254 | $ hg remove .hgsubstate |
|
254 | $ hg remove .hgsubstate | |
255 | $ hg ci -m8 |
|
255 | $ hg ci -m8 | |
256 | $ hg parents --template '{node}\n{files}\n' |
|
256 | $ hg parents --template '{node}\n{files}\n' | |
257 | 96615c1dad2dc8e3796d7332c77ce69156f7b78e |
|
257 | 96615c1dad2dc8e3796d7332c77ce69156f7b78e | |
258 | .hgsub .hgsubstate |
|
258 | .hgsub .hgsubstate | |
259 |
|
259 | |||
260 | merge tests |
|
260 | merge tests | |
261 |
|
261 | |||
262 | $ hg co -C 3 |
|
262 | $ hg co -C 3 | |
263 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
263 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
264 | $ hg merge 5 # test adding |
|
264 | $ hg merge 5 # test adding | |
265 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
265 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
266 | (branch merge, don't forget to commit) |
|
266 | (branch merge, don't forget to commit) | |
267 | $ hg debugsub |
|
267 | $ hg debugsub | |
268 | path s |
|
268 | path s | |
269 | source s |
|
269 | source s | |
270 | revision fc627a69481fcbe5f1135069e8a3881c023e4cf5 |
|
270 | revision fc627a69481fcbe5f1135069e8a3881c023e4cf5 | |
271 | path t |
|
271 | path t | |
272 | source t |
|
272 | source t | |
273 | revision 60ca1237c19474e7a3978b0dc1ca4e6f36d51382 |
|
273 | revision 60ca1237c19474e7a3978b0dc1ca4e6f36d51382 | |
274 | $ hg ci -m9 |
|
274 | $ hg ci -m9 | |
275 | created new head |
|
275 | created new head | |
276 | $ hg merge 6 --debug # test change |
|
276 | $ hg merge 6 --debug # test change | |
277 | resolving manifests |
|
277 | resolving manifests | |
278 | branchmerge: True, force: False, partial: False |
|
278 | branchmerge: True, force: False, partial: False | |
279 | ancestor: 1f14a2e2d3ec, local: f0d2028bf86d+, remote: 1831e14459c4 |
|
279 | ancestor: 1f14a2e2d3ec, local: f0d2028bf86d+, remote: 1831e14459c4 | |
280 | starting 4 threads for background file closing (?) |
|
280 | starting 4 threads for background file closing (?) | |
281 | .hgsubstate: versions differ -> m (premerge) |
|
281 | .hgsubstate: versions differ -> m (premerge) | |
282 | subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec |
|
282 | subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec | |
283 | subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg |
|
283 | subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg | |
284 | getting subrepo t |
|
284 | getting subrepo t | |
285 | resolving manifests |
|
285 | resolving manifests | |
286 | branchmerge: False, force: False, partial: False |
|
286 | branchmerge: False, force: False, partial: False | |
287 | ancestor: 60ca1237c194, local: 60ca1237c194+, remote: 6747d179aa9a |
|
287 | ancestor: 60ca1237c194, local: 60ca1237c194+, remote: 6747d179aa9a | |
288 | t: remote is newer -> g |
|
288 | t: remote is newer -> g | |
289 | getting t |
|
289 | getting t | |
290 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
290 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
291 | (branch merge, don't forget to commit) |
|
291 | (branch merge, don't forget to commit) | |
292 | $ hg debugsub |
|
292 | $ hg debugsub | |
293 | path s |
|
293 | path s | |
294 | source s |
|
294 | source s | |
295 | revision fc627a69481fcbe5f1135069e8a3881c023e4cf5 |
|
295 | revision fc627a69481fcbe5f1135069e8a3881c023e4cf5 | |
296 | path t |
|
296 | path t | |
297 | source t |
|
297 | source t | |
298 | revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad |
|
298 | revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad | |
299 | $ echo conflict > t/t |
|
299 | $ echo conflict > t/t | |
300 | $ hg ci -m10 |
|
300 | $ hg ci -m10 | |
301 | committing subrepository t |
|
301 | committing subrepository t | |
302 | $ HGMERGE=internal:merge hg merge --debug 7 # test conflict |
|
302 | $ HGMERGE=internal:merge hg merge --debug 7 # test conflict | |
303 | resolving manifests |
|
303 | resolving manifests | |
304 | branchmerge: True, force: False, partial: False |
|
304 | branchmerge: True, force: False, partial: False | |
305 | ancestor: 1831e14459c4, local: e45c8b14af55+, remote: f94576341bcf |
|
305 | ancestor: 1831e14459c4, local: e45c8b14af55+, remote: f94576341bcf | |
306 | starting 4 threads for background file closing (?) |
|
306 | starting 4 threads for background file closing (?) | |
307 | .hgsubstate: versions differ -> m (premerge) |
|
307 | .hgsubstate: versions differ -> m (premerge) | |
308 | subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4 |
|
308 | subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4 | |
309 | subrepo t: both sides changed |
|
309 | subrepo t: both sides changed | |
310 | subrepository t diverged (local revision: 20a0db6fbf6c, remote revision: 7af322bc1198) |
|
310 | subrepository t diverged (local revision: 20a0db6fbf6c, remote revision: 7af322bc1198) | |
311 | starting 4 threads for background file closing (?) |
|
311 | starting 4 threads for background file closing (?) | |
312 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]. |
|
312 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]. | |
313 | what do you want to do? m |
|
313 | what do you want to do? m | |
314 | merging subrepository "t" |
|
314 | merging subrepository "t" | |
315 | resolving manifests |
|
315 | resolving manifests | |
316 | branchmerge: True, force: False, partial: False |
|
316 | branchmerge: True, force: False, partial: False | |
317 | ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198 |
|
317 | ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198 | |
|
318 | starting 4 threads for background file closing (?) | |||
318 | preserving t for resolve of t |
|
319 | preserving t for resolve of t | |
319 | starting 4 threads for background file closing (?) |
|
|||
320 | t: versions differ -> m (premerge) |
|
320 | t: versions differ -> m (premerge) | |
321 | picked tool ':merge' for t (binary False symlink False changedelete False) |
|
321 | picked tool ':merge' for t (binary False symlink False changedelete False) | |
322 | merging t |
|
322 | merging t | |
323 | my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a |
|
323 | my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a | |
324 | t: versions differ -> m (merge) |
|
324 | t: versions differ -> m (merge) | |
325 | picked tool ':merge' for t (binary False symlink False changedelete False) |
|
325 | picked tool ':merge' for t (binary False symlink False changedelete False) | |
326 | my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a |
|
326 | my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a | |
327 | warning: conflicts while merging t! (edit, then use 'hg resolve --mark') |
|
327 | warning: conflicts while merging t! (edit, then use 'hg resolve --mark') | |
328 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
328 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
329 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon |
|
329 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | |
330 | subrepo t: merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg |
|
330 | subrepo t: merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg | |
331 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
331 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
332 | (branch merge, don't forget to commit) |
|
332 | (branch merge, don't forget to commit) | |
333 |
|
333 | |||
334 | should conflict |
|
334 | should conflict | |
335 |
|
335 | |||
336 | $ cat t/t |
|
336 | $ cat t/t | |
337 | <<<<<<< local: 20a0db6fbf6c - test: 10 |
|
337 | <<<<<<< local: 20a0db6fbf6c - test: 10 | |
338 | conflict |
|
338 | conflict | |
339 | ======= |
|
339 | ======= | |
340 | t3 |
|
340 | t3 | |
341 | >>>>>>> other: 7af322bc1198 - test: 7 |
|
341 | >>>>>>> other: 7af322bc1198 - test: 7 | |
342 |
|
342 | |||
343 | 11: remove subrepo t |
|
343 | 11: remove subrepo t | |
344 |
|
344 | |||
345 | $ hg co -C 5 |
|
345 | $ hg co -C 5 | |
346 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
346 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
347 | $ hg revert -r 4 .hgsub # remove t |
|
347 | $ hg revert -r 4 .hgsub # remove t | |
348 | $ hg ci -m11 |
|
348 | $ hg ci -m11 | |
349 | created new head |
|
349 | created new head | |
350 | $ hg debugsub |
|
350 | $ hg debugsub | |
351 | path s |
|
351 | path s | |
352 | source s |
|
352 | source s | |
353 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
353 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
354 |
|
354 | |||
355 | local removed, remote changed, keep changed |
|
355 | local removed, remote changed, keep changed | |
356 |
|
356 | |||
357 | $ hg merge 6 |
|
357 | $ hg merge 6 | |
358 | remote [merge rev] changed subrepository t which local [working copy] removed |
|
358 | remote [merge rev] changed subrepository t which local [working copy] removed | |
359 | use (c)hanged version or (d)elete? c |
|
359 | use (c)hanged version or (d)elete? c | |
360 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
360 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
361 | (branch merge, don't forget to commit) |
|
361 | (branch merge, don't forget to commit) | |
362 | BROKEN: should include subrepo t |
|
362 | BROKEN: should include subrepo t | |
363 | $ hg debugsub |
|
363 | $ hg debugsub | |
364 | path s |
|
364 | path s | |
365 | source s |
|
365 | source s | |
366 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
366 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
367 | $ cat .hgsubstate |
|
367 | $ cat .hgsubstate | |
368 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
368 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
369 | 6747d179aa9a688023c4b0cad32e4c92bb7f34ad t |
|
369 | 6747d179aa9a688023c4b0cad32e4c92bb7f34ad t | |
370 | $ hg ci -m 'local removed, remote changed, keep changed' |
|
370 | $ hg ci -m 'local removed, remote changed, keep changed' | |
371 | BROKEN: should include subrepo t |
|
371 | BROKEN: should include subrepo t | |
372 | $ hg debugsub |
|
372 | $ hg debugsub | |
373 | path s |
|
373 | path s | |
374 | source s |
|
374 | source s | |
375 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
375 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
376 | BROKEN: should include subrepo t |
|
376 | BROKEN: should include subrepo t | |
377 | $ cat .hgsubstate |
|
377 | $ cat .hgsubstate | |
378 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
378 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
379 | $ cat t/t |
|
379 | $ cat t/t | |
380 | t2 |
|
380 | t2 | |
381 |
|
381 | |||
382 | local removed, remote changed, keep removed |
|
382 | local removed, remote changed, keep removed | |
383 |
|
383 | |||
384 | $ hg co -C 11 |
|
384 | $ hg co -C 11 | |
385 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
385 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
386 | $ hg merge --config ui.interactive=true 6 <<EOF |
|
386 | $ hg merge --config ui.interactive=true 6 <<EOF | |
387 | > d |
|
387 | > d | |
388 | > EOF |
|
388 | > EOF | |
389 | remote [merge rev] changed subrepository t which local [working copy] removed |
|
389 | remote [merge rev] changed subrepository t which local [working copy] removed | |
390 | use (c)hanged version or (d)elete? d |
|
390 | use (c)hanged version or (d)elete? d | |
391 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
391 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
392 | (branch merge, don't forget to commit) |
|
392 | (branch merge, don't forget to commit) | |
393 | $ hg debugsub |
|
393 | $ hg debugsub | |
394 | path s |
|
394 | path s | |
395 | source s |
|
395 | source s | |
396 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
396 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
397 | $ cat .hgsubstate |
|
397 | $ cat .hgsubstate | |
398 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
398 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
399 | $ hg ci -m 'local removed, remote changed, keep removed' |
|
399 | $ hg ci -m 'local removed, remote changed, keep removed' | |
400 | created new head |
|
400 | created new head | |
401 | $ hg debugsub |
|
401 | $ hg debugsub | |
402 | path s |
|
402 | path s | |
403 | source s |
|
403 | source s | |
404 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
404 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
405 | $ cat .hgsubstate |
|
405 | $ cat .hgsubstate | |
406 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
406 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
407 |
|
407 | |||
408 | local changed, remote removed, keep changed |
|
408 | local changed, remote removed, keep changed | |
409 |
|
409 | |||
410 | $ hg co -C 6 |
|
410 | $ hg co -C 6 | |
411 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
411 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
412 | $ hg merge 11 |
|
412 | $ hg merge 11 | |
413 | local [working copy] changed subrepository t which remote [merge rev] removed |
|
413 | local [working copy] changed subrepository t which remote [merge rev] removed | |
414 | use (c)hanged version or (d)elete? c |
|
414 | use (c)hanged version or (d)elete? c | |
415 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
415 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
416 | (branch merge, don't forget to commit) |
|
416 | (branch merge, don't forget to commit) | |
417 | BROKEN: should include subrepo t |
|
417 | BROKEN: should include subrepo t | |
418 | $ hg debugsub |
|
418 | $ hg debugsub | |
419 | path s |
|
419 | path s | |
420 | source s |
|
420 | source s | |
421 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
421 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
422 | BROKEN: should include subrepo t |
|
422 | BROKEN: should include subrepo t | |
423 | $ cat .hgsubstate |
|
423 | $ cat .hgsubstate | |
424 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
424 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
425 | $ hg ci -m 'local changed, remote removed, keep changed' |
|
425 | $ hg ci -m 'local changed, remote removed, keep changed' | |
426 | created new head |
|
426 | created new head | |
427 | BROKEN: should include subrepo t |
|
427 | BROKEN: should include subrepo t | |
428 | $ hg debugsub |
|
428 | $ hg debugsub | |
429 | path s |
|
429 | path s | |
430 | source s |
|
430 | source s | |
431 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
431 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
432 | BROKEN: should include subrepo t |
|
432 | BROKEN: should include subrepo t | |
433 | $ cat .hgsubstate |
|
433 | $ cat .hgsubstate | |
434 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
434 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
435 | $ cat t/t |
|
435 | $ cat t/t | |
436 | t2 |
|
436 | t2 | |
437 |
|
437 | |||
438 | local changed, remote removed, keep removed |
|
438 | local changed, remote removed, keep removed | |
439 |
|
439 | |||
440 | $ hg co -C 6 |
|
440 | $ hg co -C 6 | |
441 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
441 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
442 | $ hg merge --config ui.interactive=true 11 <<EOF |
|
442 | $ hg merge --config ui.interactive=true 11 <<EOF | |
443 | > d |
|
443 | > d | |
444 | > EOF |
|
444 | > EOF | |
445 | local [working copy] changed subrepository t which remote [merge rev] removed |
|
445 | local [working copy] changed subrepository t which remote [merge rev] removed | |
446 | use (c)hanged version or (d)elete? d |
|
446 | use (c)hanged version or (d)elete? d | |
447 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
447 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
448 | (branch merge, don't forget to commit) |
|
448 | (branch merge, don't forget to commit) | |
449 | $ hg debugsub |
|
449 | $ hg debugsub | |
450 | path s |
|
450 | path s | |
451 | source s |
|
451 | source s | |
452 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
452 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
453 | $ cat .hgsubstate |
|
453 | $ cat .hgsubstate | |
454 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
454 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
455 | $ hg ci -m 'local changed, remote removed, keep removed' |
|
455 | $ hg ci -m 'local changed, remote removed, keep removed' | |
456 | created new head |
|
456 | created new head | |
457 | $ hg debugsub |
|
457 | $ hg debugsub | |
458 | path s |
|
458 | path s | |
459 | source s |
|
459 | source s | |
460 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 |
|
460 | revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 | |
461 | $ cat .hgsubstate |
|
461 | $ cat .hgsubstate | |
462 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
462 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
463 |
|
463 | |||
464 | clean up to avoid having to fix up the tests below |
|
464 | clean up to avoid having to fix up the tests below | |
465 |
|
465 | |||
466 | $ hg co -C 10 |
|
466 | $ hg co -C 10 | |
467 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
467 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
468 | $ cat >> $HGRCPATH <<EOF |
|
468 | $ cat >> $HGRCPATH <<EOF | |
469 | > [extensions] |
|
469 | > [extensions] | |
470 | > strip= |
|
470 | > strip= | |
471 | > EOF |
|
471 | > EOF | |
472 | $ hg strip -r 11:15 |
|
472 | $ hg strip -r 11:15 | |
473 | saved backup bundle to $TESTTMP/t/.hg/strip-backup/*-backup.hg (glob) |
|
473 | saved backup bundle to $TESTTMP/t/.hg/strip-backup/*-backup.hg (glob) | |
474 |
|
474 | |||
475 | clone |
|
475 | clone | |
476 |
|
476 | |||
477 | $ cd .. |
|
477 | $ cd .. | |
478 | $ hg clone t tc |
|
478 | $ hg clone t tc | |
479 | updating to branch default |
|
479 | updating to branch default | |
480 | cloning subrepo s from $TESTTMP/t/s |
|
480 | cloning subrepo s from $TESTTMP/t/s | |
481 | cloning subrepo s/ss from $TESTTMP/t/s/ss |
|
481 | cloning subrepo s/ss from $TESTTMP/t/s/ss | |
482 | cloning subrepo t from $TESTTMP/t/t |
|
482 | cloning subrepo t from $TESTTMP/t/t | |
483 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
483 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
484 | $ cd tc |
|
484 | $ cd tc | |
485 | $ hg debugsub |
|
485 | $ hg debugsub | |
486 | path s |
|
486 | path s | |
487 | source s |
|
487 | source s | |
488 | revision fc627a69481fcbe5f1135069e8a3881c023e4cf5 |
|
488 | revision fc627a69481fcbe5f1135069e8a3881c023e4cf5 | |
489 | path t |
|
489 | path t | |
490 | source t |
|
490 | source t | |
491 | revision 20a0db6fbf6c3d2836e6519a642ae929bfc67c0e |
|
491 | revision 20a0db6fbf6c3d2836e6519a642ae929bfc67c0e | |
492 | $ cd .. |
|
492 | $ cd .. | |
493 |
|
493 | |||
494 | clone with subrepo disabled (update should fail) |
|
494 | clone with subrepo disabled (update should fail) | |
495 |
|
495 | |||
496 | $ hg clone t -U tc2 --config subrepos.allowed=false |
|
496 | $ hg clone t -U tc2 --config subrepos.allowed=false | |
497 | $ hg update -R tc2 --config subrepos.allowed=false |
|
497 | $ hg update -R tc2 --config subrepos.allowed=false | |
498 | abort: subrepos not enabled |
|
498 | abort: subrepos not enabled | |
499 | (see 'hg help config.subrepos' for details) |
|
499 | (see 'hg help config.subrepos' for details) | |
500 | [255] |
|
500 | [255] | |
501 | $ ls -A tc2 |
|
501 | $ ls -A tc2 | |
502 | .hg |
|
502 | .hg | |
503 | .hgsub |
|
503 | .hgsub | |
504 | .hgsubstate |
|
504 | .hgsubstate | |
505 | a |
|
505 | a | |
506 |
|
506 | |||
507 | $ hg clone t tc3 --config subrepos.allowed=false |
|
507 | $ hg clone t tc3 --config subrepos.allowed=false | |
508 | updating to branch default |
|
508 | updating to branch default | |
509 | abort: subrepos not enabled |
|
509 | abort: subrepos not enabled | |
510 | (see 'hg help config.subrepos' for details) |
|
510 | (see 'hg help config.subrepos' for details) | |
511 | [255] |
|
511 | [255] | |
512 | $ ls -A tc3 |
|
512 | $ ls -A tc3 | |
513 | .hg |
|
513 | .hg | |
514 | .hgsub |
|
514 | .hgsub | |
515 | .hgsubstate |
|
515 | .hgsubstate | |
516 | a |
|
516 | a | |
517 |
|
517 | |||
518 | And again with just the hg type disabled |
|
518 | And again with just the hg type disabled | |
519 |
|
519 | |||
520 | $ hg clone t -U tc4 --config subrepos.hg:allowed=false |
|
520 | $ hg clone t -U tc4 --config subrepos.hg:allowed=false | |
521 | $ hg update -R tc4 --config subrepos.hg:allowed=false |
|
521 | $ hg update -R tc4 --config subrepos.hg:allowed=false | |
522 | abort: hg subrepos not allowed |
|
522 | abort: hg subrepos not allowed | |
523 | (see 'hg help config.subrepos' for details) |
|
523 | (see 'hg help config.subrepos' for details) | |
524 | [255] |
|
524 | [255] | |
525 | $ ls -A tc4 |
|
525 | $ ls -A tc4 | |
526 | .hg |
|
526 | .hg | |
527 | .hgsub |
|
527 | .hgsub | |
528 | .hgsubstate |
|
528 | .hgsubstate | |
529 | a |
|
529 | a | |
530 |
|
530 | |||
531 | $ hg clone t tc5 --config subrepos.hg:allowed=false |
|
531 | $ hg clone t tc5 --config subrepos.hg:allowed=false | |
532 | updating to branch default |
|
532 | updating to branch default | |
533 | abort: hg subrepos not allowed |
|
533 | abort: hg subrepos not allowed | |
534 | (see 'hg help config.subrepos' for details) |
|
534 | (see 'hg help config.subrepos' for details) | |
535 | [255] |
|
535 | [255] | |
536 | $ ls -A tc5 |
|
536 | $ ls -A tc5 | |
537 | .hg |
|
537 | .hg | |
538 | .hgsub |
|
538 | .hgsub | |
539 | .hgsubstate |
|
539 | .hgsubstate | |
540 | a |
|
540 | a | |
541 |
|
541 | |||
542 | push |
|
542 | push | |
543 |
|
543 | |||
544 | $ cd tc |
|
544 | $ cd tc | |
545 | $ echo bah > t/t |
|
545 | $ echo bah > t/t | |
546 | $ hg ci -m11 |
|
546 | $ hg ci -m11 | |
547 | committing subrepository t |
|
547 | committing subrepository t | |
548 | $ hg push |
|
548 | $ hg push | |
549 | pushing to $TESTTMP/t |
|
549 | pushing to $TESTTMP/t | |
550 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss |
|
550 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss | |
551 | no changes made to subrepo s since last push to $TESTTMP/t/s |
|
551 | no changes made to subrepo s since last push to $TESTTMP/t/s | |
552 | pushing subrepo t to $TESTTMP/t/t |
|
552 | pushing subrepo t to $TESTTMP/t/t | |
553 | searching for changes |
|
553 | searching for changes | |
554 | adding changesets |
|
554 | adding changesets | |
555 | adding manifests |
|
555 | adding manifests | |
556 | adding file changes |
|
556 | adding file changes | |
557 | added 1 changesets with 1 changes to 1 files |
|
557 | added 1 changesets with 1 changes to 1 files | |
558 | searching for changes |
|
558 | searching for changes | |
559 | adding changesets |
|
559 | adding changesets | |
560 | adding manifests |
|
560 | adding manifests | |
561 | adding file changes |
|
561 | adding file changes | |
562 | added 1 changesets with 1 changes to 1 files |
|
562 | added 1 changesets with 1 changes to 1 files | |
563 |
|
563 | |||
564 | push -f |
|
564 | push -f | |
565 |
|
565 | |||
566 | $ echo bah > s/a |
|
566 | $ echo bah > s/a | |
567 | $ hg ci -m12 |
|
567 | $ hg ci -m12 | |
568 | committing subrepository s |
|
568 | committing subrepository s | |
569 | $ hg push |
|
569 | $ hg push | |
570 | pushing to $TESTTMP/t |
|
570 | pushing to $TESTTMP/t | |
571 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss |
|
571 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss | |
572 | pushing subrepo s to $TESTTMP/t/s |
|
572 | pushing subrepo s to $TESTTMP/t/s | |
573 | searching for changes |
|
573 | searching for changes | |
574 | abort: push creates new remote head 12a213df6fa9 (in subrepository "s") |
|
574 | abort: push creates new remote head 12a213df6fa9 (in subrepository "s") | |
575 | (merge or see 'hg help push' for details about pushing new heads) |
|
575 | (merge or see 'hg help push' for details about pushing new heads) | |
576 | [255] |
|
576 | [255] | |
577 | $ hg push -f |
|
577 | $ hg push -f | |
578 | pushing to $TESTTMP/t |
|
578 | pushing to $TESTTMP/t | |
579 | pushing subrepo s/ss to $TESTTMP/t/s/ss |
|
579 | pushing subrepo s/ss to $TESTTMP/t/s/ss | |
580 | searching for changes |
|
580 | searching for changes | |
581 | no changes found |
|
581 | no changes found | |
582 | pushing subrepo s to $TESTTMP/t/s |
|
582 | pushing subrepo s to $TESTTMP/t/s | |
583 | searching for changes |
|
583 | searching for changes | |
584 | adding changesets |
|
584 | adding changesets | |
585 | adding manifests |
|
585 | adding manifests | |
586 | adding file changes |
|
586 | adding file changes | |
587 | added 1 changesets with 1 changes to 1 files (+1 heads) |
|
587 | added 1 changesets with 1 changes to 1 files (+1 heads) | |
588 | pushing subrepo t to $TESTTMP/t/t |
|
588 | pushing subrepo t to $TESTTMP/t/t | |
589 | searching for changes |
|
589 | searching for changes | |
590 | no changes found |
|
590 | no changes found | |
591 | searching for changes |
|
591 | searching for changes | |
592 | adding changesets |
|
592 | adding changesets | |
593 | adding manifests |
|
593 | adding manifests | |
594 | adding file changes |
|
594 | adding file changes | |
595 | added 1 changesets with 1 changes to 1 files |
|
595 | added 1 changesets with 1 changes to 1 files | |
596 |
|
596 | |||
597 | check that unmodified subrepos are not pushed |
|
597 | check that unmodified subrepos are not pushed | |
598 |
|
598 | |||
599 | $ hg clone . ../tcc |
|
599 | $ hg clone . ../tcc | |
600 | updating to branch default |
|
600 | updating to branch default | |
601 | cloning subrepo s from $TESTTMP/tc/s |
|
601 | cloning subrepo s from $TESTTMP/tc/s | |
602 | cloning subrepo s/ss from $TESTTMP/tc/s/ss |
|
602 | cloning subrepo s/ss from $TESTTMP/tc/s/ss | |
603 | cloning subrepo t from $TESTTMP/tc/t |
|
603 | cloning subrepo t from $TESTTMP/tc/t | |
604 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
604 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
605 |
|
605 | |||
606 | the subrepos on the new clone have nothing to push to its source |
|
606 | the subrepos on the new clone have nothing to push to its source | |
607 |
|
607 | |||
608 | $ hg push -R ../tcc . |
|
608 | $ hg push -R ../tcc . | |
609 | pushing to . |
|
609 | pushing to . | |
610 | no changes made to subrepo s/ss since last push to s/ss |
|
610 | no changes made to subrepo s/ss since last push to s/ss | |
611 | no changes made to subrepo s since last push to s |
|
611 | no changes made to subrepo s since last push to s | |
612 | no changes made to subrepo t since last push to t |
|
612 | no changes made to subrepo t since last push to t | |
613 | searching for changes |
|
613 | searching for changes | |
614 | no changes found |
|
614 | no changes found | |
615 | [1] |
|
615 | [1] | |
616 |
|
616 | |||
617 | the subrepos on the source do not have a clean store versus the clone target |
|
617 | the subrepos on the source do not have a clean store versus the clone target | |
618 | because they were never explicitly pushed to the source |
|
618 | because they were never explicitly pushed to the source | |
619 |
|
619 | |||
620 | $ hg push ../tcc |
|
620 | $ hg push ../tcc | |
621 | pushing to ../tcc |
|
621 | pushing to ../tcc | |
622 | pushing subrepo s/ss to ../tcc/s/ss |
|
622 | pushing subrepo s/ss to ../tcc/s/ss | |
623 | searching for changes |
|
623 | searching for changes | |
624 | no changes found |
|
624 | no changes found | |
625 | pushing subrepo s to ../tcc/s |
|
625 | pushing subrepo s to ../tcc/s | |
626 | searching for changes |
|
626 | searching for changes | |
627 | no changes found |
|
627 | no changes found | |
628 | pushing subrepo t to ../tcc/t |
|
628 | pushing subrepo t to ../tcc/t | |
629 | searching for changes |
|
629 | searching for changes | |
630 | no changes found |
|
630 | no changes found | |
631 | searching for changes |
|
631 | searching for changes | |
632 | no changes found |
|
632 | no changes found | |
633 | [1] |
|
633 | [1] | |
634 |
|
634 | |||
635 | after push their stores become clean |
|
635 | after push their stores become clean | |
636 |
|
636 | |||
637 | $ hg push ../tcc |
|
637 | $ hg push ../tcc | |
638 | pushing to ../tcc |
|
638 | pushing to ../tcc | |
639 | no changes made to subrepo s/ss since last push to ../tcc/s/ss |
|
639 | no changes made to subrepo s/ss since last push to ../tcc/s/ss | |
640 | no changes made to subrepo s since last push to ../tcc/s |
|
640 | no changes made to subrepo s since last push to ../tcc/s | |
641 | no changes made to subrepo t since last push to ../tcc/t |
|
641 | no changes made to subrepo t since last push to ../tcc/t | |
642 | searching for changes |
|
642 | searching for changes | |
643 | no changes found |
|
643 | no changes found | |
644 | [1] |
|
644 | [1] | |
645 |
|
645 | |||
646 | updating a subrepo to a different revision or changing |
|
646 | updating a subrepo to a different revision or changing | |
647 | its working directory does not make its store dirty |
|
647 | its working directory does not make its store dirty | |
648 |
|
648 | |||
649 | $ hg -R s update '.^' |
|
649 | $ hg -R s update '.^' | |
650 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
650 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
651 | $ hg push |
|
651 | $ hg push | |
652 | pushing to $TESTTMP/t |
|
652 | pushing to $TESTTMP/t | |
653 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss |
|
653 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss | |
654 | no changes made to subrepo s since last push to $TESTTMP/t/s |
|
654 | no changes made to subrepo s since last push to $TESTTMP/t/s | |
655 | no changes made to subrepo t since last push to $TESTTMP/t/t |
|
655 | no changes made to subrepo t since last push to $TESTTMP/t/t | |
656 | searching for changes |
|
656 | searching for changes | |
657 | no changes found |
|
657 | no changes found | |
658 | [1] |
|
658 | [1] | |
659 | $ echo foo >> s/a |
|
659 | $ echo foo >> s/a | |
660 | $ hg push |
|
660 | $ hg push | |
661 | pushing to $TESTTMP/t |
|
661 | pushing to $TESTTMP/t | |
662 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss |
|
662 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss | |
663 | no changes made to subrepo s since last push to $TESTTMP/t/s |
|
663 | no changes made to subrepo s since last push to $TESTTMP/t/s | |
664 | no changes made to subrepo t since last push to $TESTTMP/t/t |
|
664 | no changes made to subrepo t since last push to $TESTTMP/t/t | |
665 | searching for changes |
|
665 | searching for changes | |
666 | no changes found |
|
666 | no changes found | |
667 | [1] |
|
667 | [1] | |
668 | $ hg -R s update -C tip |
|
668 | $ hg -R s update -C tip | |
669 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
669 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
670 |
|
670 | |||
671 | committing into a subrepo makes its store (but not its parent's store) dirty |
|
671 | committing into a subrepo makes its store (but not its parent's store) dirty | |
672 |
|
672 | |||
673 | $ echo foo >> s/ss/a |
|
673 | $ echo foo >> s/ss/a | |
674 | $ hg -R s/ss commit -m 'test dirty store detection' |
|
674 | $ hg -R s/ss commit -m 'test dirty store detection' | |
675 |
|
675 | |||
676 | $ hg out -S -r `hg log -r tip -T "{node|short}"` |
|
676 | $ hg out -S -r `hg log -r tip -T "{node|short}"` | |
677 | comparing with $TESTTMP/t |
|
677 | comparing with $TESTTMP/t | |
678 | searching for changes |
|
678 | searching for changes | |
679 | no changes found |
|
679 | no changes found | |
680 | comparing with $TESTTMP/t/s |
|
680 | comparing with $TESTTMP/t/s | |
681 | searching for changes |
|
681 | searching for changes | |
682 | no changes found |
|
682 | no changes found | |
683 | comparing with $TESTTMP/t/s/ss |
|
683 | comparing with $TESTTMP/t/s/ss | |
684 | searching for changes |
|
684 | searching for changes | |
685 | changeset: 1:79ea5566a333 |
|
685 | changeset: 1:79ea5566a333 | |
686 | tag: tip |
|
686 | tag: tip | |
687 | user: test |
|
687 | user: test | |
688 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
688 | date: Thu Jan 01 00:00:00 1970 +0000 | |
689 | summary: test dirty store detection |
|
689 | summary: test dirty store detection | |
690 |
|
690 | |||
691 | comparing with $TESTTMP/t/t |
|
691 | comparing with $TESTTMP/t/t | |
692 | searching for changes |
|
692 | searching for changes | |
693 | no changes found |
|
693 | no changes found | |
694 |
|
694 | |||
695 | $ hg push |
|
695 | $ hg push | |
696 | pushing to $TESTTMP/t |
|
696 | pushing to $TESTTMP/t | |
697 | pushing subrepo s/ss to $TESTTMP/t/s/ss |
|
697 | pushing subrepo s/ss to $TESTTMP/t/s/ss | |
698 | searching for changes |
|
698 | searching for changes | |
699 | adding changesets |
|
699 | adding changesets | |
700 | adding manifests |
|
700 | adding manifests | |
701 | adding file changes |
|
701 | adding file changes | |
702 | added 1 changesets with 1 changes to 1 files |
|
702 | added 1 changesets with 1 changes to 1 files | |
703 | no changes made to subrepo s since last push to $TESTTMP/t/s |
|
703 | no changes made to subrepo s since last push to $TESTTMP/t/s | |
704 | no changes made to subrepo t since last push to $TESTTMP/t/t |
|
704 | no changes made to subrepo t since last push to $TESTTMP/t/t | |
705 | searching for changes |
|
705 | searching for changes | |
706 | no changes found |
|
706 | no changes found | |
707 | [1] |
|
707 | [1] | |
708 |
|
708 | |||
709 | a subrepo store may be clean versus one repo but not versus another |
|
709 | a subrepo store may be clean versus one repo but not versus another | |
710 |
|
710 | |||
711 | $ hg push |
|
711 | $ hg push | |
712 | pushing to $TESTTMP/t |
|
712 | pushing to $TESTTMP/t | |
713 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss |
|
713 | no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss | |
714 | no changes made to subrepo s since last push to $TESTTMP/t/s |
|
714 | no changes made to subrepo s since last push to $TESTTMP/t/s | |
715 | no changes made to subrepo t since last push to $TESTTMP/t/t |
|
715 | no changes made to subrepo t since last push to $TESTTMP/t/t | |
716 | searching for changes |
|
716 | searching for changes | |
717 | no changes found |
|
717 | no changes found | |
718 | [1] |
|
718 | [1] | |
719 | $ hg push ../tcc |
|
719 | $ hg push ../tcc | |
720 | pushing to ../tcc |
|
720 | pushing to ../tcc | |
721 | pushing subrepo s/ss to ../tcc/s/ss |
|
721 | pushing subrepo s/ss to ../tcc/s/ss | |
722 | searching for changes |
|
722 | searching for changes | |
723 | adding changesets |
|
723 | adding changesets | |
724 | adding manifests |
|
724 | adding manifests | |
725 | adding file changes |
|
725 | adding file changes | |
726 | added 1 changesets with 1 changes to 1 files |
|
726 | added 1 changesets with 1 changes to 1 files | |
727 | no changes made to subrepo s since last push to ../tcc/s |
|
727 | no changes made to subrepo s since last push to ../tcc/s | |
728 | no changes made to subrepo t since last push to ../tcc/t |
|
728 | no changes made to subrepo t since last push to ../tcc/t | |
729 | searching for changes |
|
729 | searching for changes | |
730 | no changes found |
|
730 | no changes found | |
731 | [1] |
|
731 | [1] | |
732 |
|
732 | |||
733 | update |
|
733 | update | |
734 |
|
734 | |||
735 | $ cd ../t |
|
735 | $ cd ../t | |
736 | $ hg up -C # discard our earlier merge |
|
736 | $ hg up -C # discard our earlier merge | |
737 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
737 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
738 | updated to "c373c8102e68: 12" |
|
738 | updated to "c373c8102e68: 12" | |
739 | 2 other heads for branch "default" |
|
739 | 2 other heads for branch "default" | |
740 | $ echo blah > t/t |
|
740 | $ echo blah > t/t | |
741 | $ hg ci -m13 |
|
741 | $ hg ci -m13 | |
742 | committing subrepository t |
|
742 | committing subrepository t | |
743 |
|
743 | |||
744 | backout calls revert internally with minimal opts, which should not raise |
|
744 | backout calls revert internally with minimal opts, which should not raise | |
745 | KeyError |
|
745 | KeyError | |
746 |
|
746 | |||
747 | $ hg backout ".^" --no-commit |
|
747 | $ hg backout ".^" --no-commit | |
748 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
748 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
749 | changeset c373c8102e68 backed out, don't forget to commit. |
|
749 | changeset c373c8102e68 backed out, don't forget to commit. | |
750 |
|
750 | |||
751 | $ hg up -C # discard changes |
|
751 | $ hg up -C # discard changes | |
752 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
752 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
753 | updated to "925c17564ef8: 13" |
|
753 | updated to "925c17564ef8: 13" | |
754 | 2 other heads for branch "default" |
|
754 | 2 other heads for branch "default" | |
755 |
|
755 | |||
756 | pull |
|
756 | pull | |
757 |
|
757 | |||
758 | $ cd ../tc |
|
758 | $ cd ../tc | |
759 | $ hg pull |
|
759 | $ hg pull | |
760 | pulling from $TESTTMP/t |
|
760 | pulling from $TESTTMP/t | |
761 | searching for changes |
|
761 | searching for changes | |
762 | adding changesets |
|
762 | adding changesets | |
763 | adding manifests |
|
763 | adding manifests | |
764 | adding file changes |
|
764 | adding file changes | |
765 | added 1 changesets with 1 changes to 1 files |
|
765 | added 1 changesets with 1 changes to 1 files | |
766 | new changesets 925c17564ef8 |
|
766 | new changesets 925c17564ef8 | |
767 | (run 'hg update' to get a working copy) |
|
767 | (run 'hg update' to get a working copy) | |
768 |
|
768 | |||
769 | should pull t |
|
769 | should pull t | |
770 |
|
770 | |||
771 | $ hg incoming -S -r `hg log -r tip -T "{node|short}"` |
|
771 | $ hg incoming -S -r `hg log -r tip -T "{node|short}"` | |
772 | comparing with $TESTTMP/t |
|
772 | comparing with $TESTTMP/t | |
773 | no changes found |
|
773 | no changes found | |
774 | comparing with $TESTTMP/t/s |
|
774 | comparing with $TESTTMP/t/s | |
775 | searching for changes |
|
775 | searching for changes | |
776 | no changes found |
|
776 | no changes found | |
777 | comparing with $TESTTMP/t/s/ss |
|
777 | comparing with $TESTTMP/t/s/ss | |
778 | searching for changes |
|
778 | searching for changes | |
779 | no changes found |
|
779 | no changes found | |
780 | comparing with $TESTTMP/t/t |
|
780 | comparing with $TESTTMP/t/t | |
781 | searching for changes |
|
781 | searching for changes | |
782 | changeset: 5:52c0adc0515a |
|
782 | changeset: 5:52c0adc0515a | |
783 | tag: tip |
|
783 | tag: tip | |
784 | user: test |
|
784 | user: test | |
785 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
785 | date: Thu Jan 01 00:00:00 1970 +0000 | |
786 | summary: 13 |
|
786 | summary: 13 | |
787 |
|
787 | |||
788 |
|
788 | |||
789 | $ hg up |
|
789 | $ hg up | |
790 | pulling subrepo t from $TESTTMP/t/t |
|
790 | pulling subrepo t from $TESTTMP/t/t | |
791 | searching for changes |
|
791 | searching for changes | |
792 | adding changesets |
|
792 | adding changesets | |
793 | adding manifests |
|
793 | adding manifests | |
794 | adding file changes |
|
794 | adding file changes | |
795 | added 1 changesets with 1 changes to 1 files |
|
795 | added 1 changesets with 1 changes to 1 files | |
796 | new changesets 52c0adc0515a |
|
796 | new changesets 52c0adc0515a | |
797 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
797 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
798 | updated to "925c17564ef8: 13" |
|
798 | updated to "925c17564ef8: 13" | |
799 | 2 other heads for branch "default" |
|
799 | 2 other heads for branch "default" | |
800 | $ cat t/t |
|
800 | $ cat t/t | |
801 | blah |
|
801 | blah | |
802 |
|
802 | |||
803 | bogus subrepo path aborts |
|
803 | bogus subrepo path aborts | |
804 |
|
804 | |||
805 | $ echo 'bogus=[boguspath' >> .hgsub |
|
805 | $ echo 'bogus=[boguspath' >> .hgsub | |
806 | $ hg ci -m 'bogus subrepo path' |
|
806 | $ hg ci -m 'bogus subrepo path' | |
807 | abort: missing ] in subrepository source |
|
807 | abort: missing ] in subrepository source | |
808 | [255] |
|
808 | [255] | |
809 |
|
809 | |||
810 | Issue1986: merge aborts when trying to merge a subrepo that |
|
810 | Issue1986: merge aborts when trying to merge a subrepo that | |
811 | shouldn't need merging |
|
811 | shouldn't need merging | |
812 |
|
812 | |||
813 | # subrepo layout |
|
813 | # subrepo layout | |
814 | # |
|
814 | # | |
815 | # o 5 br |
|
815 | # o 5 br | |
816 | # /| |
|
816 | # /| | |
817 | # o | 4 default |
|
817 | # o | 4 default | |
818 | # | | |
|
818 | # | | | |
819 | # | o 3 br |
|
819 | # | o 3 br | |
820 | # |/| |
|
820 | # |/| | |
821 | # o | 2 default |
|
821 | # o | 2 default | |
822 | # | | |
|
822 | # | | | |
823 | # | o 1 br |
|
823 | # | o 1 br | |
824 | # |/ |
|
824 | # |/ | |
825 | # o 0 default |
|
825 | # o 0 default | |
826 |
|
826 | |||
827 | $ cd .. |
|
827 | $ cd .. | |
828 | $ rm -rf sub |
|
828 | $ rm -rf sub | |
829 | $ hg init main |
|
829 | $ hg init main | |
830 | $ cd main |
|
830 | $ cd main | |
831 | $ hg init s |
|
831 | $ hg init s | |
832 | $ cd s |
|
832 | $ cd s | |
833 | $ echo a > a |
|
833 | $ echo a > a | |
834 | $ hg ci -Am1 |
|
834 | $ hg ci -Am1 | |
835 | adding a |
|
835 | adding a | |
836 | $ hg branch br |
|
836 | $ hg branch br | |
837 | marked working directory as branch br |
|
837 | marked working directory as branch br | |
838 | (branches are permanent and global, did you want a bookmark?) |
|
838 | (branches are permanent and global, did you want a bookmark?) | |
839 | $ echo a >> a |
|
839 | $ echo a >> a | |
840 | $ hg ci -m1 |
|
840 | $ hg ci -m1 | |
841 | $ hg up default |
|
841 | $ hg up default | |
842 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
842 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
843 | $ echo b > b |
|
843 | $ echo b > b | |
844 | $ hg ci -Am1 |
|
844 | $ hg ci -Am1 | |
845 | adding b |
|
845 | adding b | |
846 | $ hg up br |
|
846 | $ hg up br | |
847 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
847 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
848 | $ hg merge tip |
|
848 | $ hg merge tip | |
849 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
849 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
850 | (branch merge, don't forget to commit) |
|
850 | (branch merge, don't forget to commit) | |
851 | $ hg ci -m1 |
|
851 | $ hg ci -m1 | |
852 | $ hg up 2 |
|
852 | $ hg up 2 | |
853 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
853 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
854 | $ echo c > c |
|
854 | $ echo c > c | |
855 | $ hg ci -Am1 |
|
855 | $ hg ci -Am1 | |
856 | adding c |
|
856 | adding c | |
857 | $ hg up 3 |
|
857 | $ hg up 3 | |
858 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
858 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
859 | $ hg merge 4 |
|
859 | $ hg merge 4 | |
860 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
860 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
861 | (branch merge, don't forget to commit) |
|
861 | (branch merge, don't forget to commit) | |
862 | $ hg ci -m1 |
|
862 | $ hg ci -m1 | |
863 |
|
863 | |||
864 | # main repo layout: |
|
864 | # main repo layout: | |
865 | # |
|
865 | # | |
866 | # * <-- try to merge default into br again |
|
866 | # * <-- try to merge default into br again | |
867 | # .`| |
|
867 | # .`| | |
868 | # . o 5 br --> substate = 5 |
|
868 | # . o 5 br --> substate = 5 | |
869 | # . | |
|
869 | # . | | |
870 | # o | 4 default --> substate = 4 |
|
870 | # o | 4 default --> substate = 4 | |
871 | # | | |
|
871 | # | | | |
872 | # | o 3 br --> substate = 2 |
|
872 | # | o 3 br --> substate = 2 | |
873 | # |/| |
|
873 | # |/| | |
874 | # o | 2 default --> substate = 2 |
|
874 | # o | 2 default --> substate = 2 | |
875 | # | | |
|
875 | # | | | |
876 | # | o 1 br --> substate = 3 |
|
876 | # | o 1 br --> substate = 3 | |
877 | # |/ |
|
877 | # |/ | |
878 | # o 0 default --> substate = 2 |
|
878 | # o 0 default --> substate = 2 | |
879 |
|
879 | |||
880 | $ cd .. |
|
880 | $ cd .. | |
881 | $ echo 's = s' > .hgsub |
|
881 | $ echo 's = s' > .hgsub | |
882 | $ hg -R s up 2 |
|
882 | $ hg -R s up 2 | |
883 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
883 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
884 | $ hg ci -Am1 |
|
884 | $ hg ci -Am1 | |
885 | adding .hgsub |
|
885 | adding .hgsub | |
886 | $ hg branch br |
|
886 | $ hg branch br | |
887 | marked working directory as branch br |
|
887 | marked working directory as branch br | |
888 | (branches are permanent and global, did you want a bookmark?) |
|
888 | (branches are permanent and global, did you want a bookmark?) | |
889 | $ echo b > b |
|
889 | $ echo b > b | |
890 | $ hg -R s up 3 |
|
890 | $ hg -R s up 3 | |
891 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
891 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
892 | $ hg ci -Am1 |
|
892 | $ hg ci -Am1 | |
893 | adding b |
|
893 | adding b | |
894 | $ hg up default |
|
894 | $ hg up default | |
895 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
895 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
896 | $ echo c > c |
|
896 | $ echo c > c | |
897 | $ hg ci -Am1 |
|
897 | $ hg ci -Am1 | |
898 | adding c |
|
898 | adding c | |
899 | $ hg up 1 |
|
899 | $ hg up 1 | |
900 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
900 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
901 | $ hg merge 2 |
|
901 | $ hg merge 2 | |
902 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
902 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
903 | (branch merge, don't forget to commit) |
|
903 | (branch merge, don't forget to commit) | |
904 | $ hg ci -m1 |
|
904 | $ hg ci -m1 | |
905 | $ hg up 2 |
|
905 | $ hg up 2 | |
906 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
906 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
907 | $ hg -R s up 4 |
|
907 | $ hg -R s up 4 | |
908 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
908 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
909 | $ echo d > d |
|
909 | $ echo d > d | |
910 | $ hg ci -Am1 |
|
910 | $ hg ci -Am1 | |
911 | adding d |
|
911 | adding d | |
912 | $ hg up 3 |
|
912 | $ hg up 3 | |
913 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
913 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
914 | $ hg -R s up 5 |
|
914 | $ hg -R s up 5 | |
915 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
915 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
916 | $ echo e > e |
|
916 | $ echo e > e | |
917 | $ hg ci -Am1 |
|
917 | $ hg ci -Am1 | |
918 | adding e |
|
918 | adding e | |
919 |
|
919 | |||
920 | $ hg up 5 |
|
920 | $ hg up 5 | |
921 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
921 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
922 | $ hg merge 4 # try to merge default into br again |
|
922 | $ hg merge 4 # try to merge default into br again | |
923 | subrepository s diverged (local revision: f8f13b33206e, remote revision: a3f9062a4f88) |
|
923 | subrepository s diverged (local revision: f8f13b33206e, remote revision: a3f9062a4f88) | |
924 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]. |
|
924 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]. | |
925 | what do you want to do? m |
|
925 | what do you want to do? m | |
926 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
926 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
927 | (branch merge, don't forget to commit) |
|
927 | (branch merge, don't forget to commit) | |
928 | $ cd .. |
|
928 | $ cd .. | |
929 |
|
929 | |||
930 | test subrepo delete from .hgsubstate |
|
930 | test subrepo delete from .hgsubstate | |
931 |
|
931 | |||
932 | $ hg init testdelete |
|
932 | $ hg init testdelete | |
933 | $ mkdir testdelete/nested testdelete/nested2 |
|
933 | $ mkdir testdelete/nested testdelete/nested2 | |
934 | $ hg init testdelete/nested |
|
934 | $ hg init testdelete/nested | |
935 | $ hg init testdelete/nested2 |
|
935 | $ hg init testdelete/nested2 | |
936 | $ echo test > testdelete/nested/foo |
|
936 | $ echo test > testdelete/nested/foo | |
937 | $ echo test > testdelete/nested2/foo |
|
937 | $ echo test > testdelete/nested2/foo | |
938 | $ hg -R testdelete/nested add |
|
938 | $ hg -R testdelete/nested add | |
939 | adding testdelete/nested/foo |
|
939 | adding testdelete/nested/foo | |
940 | $ hg -R testdelete/nested2 add |
|
940 | $ hg -R testdelete/nested2 add | |
941 | adding testdelete/nested2/foo |
|
941 | adding testdelete/nested2/foo | |
942 | $ hg -R testdelete/nested ci -m test |
|
942 | $ hg -R testdelete/nested ci -m test | |
943 | $ hg -R testdelete/nested2 ci -m test |
|
943 | $ hg -R testdelete/nested2 ci -m test | |
944 | $ echo nested = nested > testdelete/.hgsub |
|
944 | $ echo nested = nested > testdelete/.hgsub | |
945 | $ echo nested2 = nested2 >> testdelete/.hgsub |
|
945 | $ echo nested2 = nested2 >> testdelete/.hgsub | |
946 | $ hg -R testdelete add |
|
946 | $ hg -R testdelete add | |
947 | adding testdelete/.hgsub |
|
947 | adding testdelete/.hgsub | |
948 | $ hg -R testdelete ci -m "nested 1 & 2 added" |
|
948 | $ hg -R testdelete ci -m "nested 1 & 2 added" | |
949 | $ echo nested = nested > testdelete/.hgsub |
|
949 | $ echo nested = nested > testdelete/.hgsub | |
950 | $ hg -R testdelete ci -m "nested 2 deleted" |
|
950 | $ hg -R testdelete ci -m "nested 2 deleted" | |
951 | $ cat testdelete/.hgsubstate |
|
951 | $ cat testdelete/.hgsubstate | |
952 | bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested |
|
952 | bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested | |
953 | $ hg -R testdelete remove testdelete/.hgsub |
|
953 | $ hg -R testdelete remove testdelete/.hgsub | |
954 | $ hg -R testdelete ci -m ".hgsub deleted" |
|
954 | $ hg -R testdelete ci -m ".hgsub deleted" | |
955 | $ cat testdelete/.hgsubstate |
|
955 | $ cat testdelete/.hgsubstate | |
956 | bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested |
|
956 | bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested | |
957 |
|
957 | |||
958 | test repository cloning |
|
958 | test repository cloning | |
959 |
|
959 | |||
960 | $ mkdir mercurial mercurial2 |
|
960 | $ mkdir mercurial mercurial2 | |
961 | $ hg init nested_absolute |
|
961 | $ hg init nested_absolute | |
962 | $ echo test > nested_absolute/foo |
|
962 | $ echo test > nested_absolute/foo | |
963 | $ hg -R nested_absolute add |
|
963 | $ hg -R nested_absolute add | |
964 | adding nested_absolute/foo |
|
964 | adding nested_absolute/foo | |
965 | $ hg -R nested_absolute ci -mtest |
|
965 | $ hg -R nested_absolute ci -mtest | |
966 | $ cd mercurial |
|
966 | $ cd mercurial | |
967 | $ hg init nested_relative |
|
967 | $ hg init nested_relative | |
968 | $ echo test2 > nested_relative/foo2 |
|
968 | $ echo test2 > nested_relative/foo2 | |
969 | $ hg -R nested_relative add |
|
969 | $ hg -R nested_relative add | |
970 | adding nested_relative/foo2 |
|
970 | adding nested_relative/foo2 | |
971 | $ hg -R nested_relative ci -mtest2 |
|
971 | $ hg -R nested_relative ci -mtest2 | |
972 | $ hg init main |
|
972 | $ hg init main | |
973 | $ echo "nested_relative = ../nested_relative" > main/.hgsub |
|
973 | $ echo "nested_relative = ../nested_relative" > main/.hgsub | |
974 | $ echo "nested_absolute = `pwd`/nested_absolute" >> main/.hgsub |
|
974 | $ echo "nested_absolute = `pwd`/nested_absolute" >> main/.hgsub | |
975 | $ hg -R main add |
|
975 | $ hg -R main add | |
976 | adding main/.hgsub |
|
976 | adding main/.hgsub | |
977 | $ hg -R main ci -m "add subrepos" |
|
977 | $ hg -R main ci -m "add subrepos" | |
978 | $ cd .. |
|
978 | $ cd .. | |
979 | $ hg clone mercurial/main mercurial2/main |
|
979 | $ hg clone mercurial/main mercurial2/main | |
980 | updating to branch default |
|
980 | updating to branch default | |
981 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
981 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
982 | $ cat mercurial2/main/nested_absolute/.hg/hgrc \ |
|
982 | $ cat mercurial2/main/nested_absolute/.hg/hgrc \ | |
983 | > mercurial2/main/nested_relative/.hg/hgrc |
|
983 | > mercurial2/main/nested_relative/.hg/hgrc | |
984 | [paths] |
|
984 | [paths] | |
985 | default = $TESTTMP/mercurial/nested_absolute |
|
985 | default = $TESTTMP/mercurial/nested_absolute | |
986 | [paths] |
|
986 | [paths] | |
987 | default = $TESTTMP/mercurial/nested_relative |
|
987 | default = $TESTTMP/mercurial/nested_relative | |
988 | $ rm -rf mercurial mercurial2 |
|
988 | $ rm -rf mercurial mercurial2 | |
989 |
|
989 | |||
990 | Issue1977: multirepo push should fail if subrepo push fails |
|
990 | Issue1977: multirepo push should fail if subrepo push fails | |
991 |
|
991 | |||
992 | $ hg init repo |
|
992 | $ hg init repo | |
993 | $ hg init repo/s |
|
993 | $ hg init repo/s | |
994 | $ echo a > repo/s/a |
|
994 | $ echo a > repo/s/a | |
995 | $ hg -R repo/s ci -Am0 |
|
995 | $ hg -R repo/s ci -Am0 | |
996 | adding a |
|
996 | adding a | |
997 | $ echo s = s > repo/.hgsub |
|
997 | $ echo s = s > repo/.hgsub | |
998 | $ hg -R repo ci -Am1 |
|
998 | $ hg -R repo ci -Am1 | |
999 | adding .hgsub |
|
999 | adding .hgsub | |
1000 | $ hg clone repo repo2 |
|
1000 | $ hg clone repo repo2 | |
1001 | updating to branch default |
|
1001 | updating to branch default | |
1002 | cloning subrepo s from $TESTTMP/repo/s |
|
1002 | cloning subrepo s from $TESTTMP/repo/s | |
1003 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1003 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1004 | $ hg -q -R repo2 pull -u |
|
1004 | $ hg -q -R repo2 pull -u | |
1005 | $ echo 1 > repo2/s/a |
|
1005 | $ echo 1 > repo2/s/a | |
1006 | $ hg -R repo2/s ci -m2 |
|
1006 | $ hg -R repo2/s ci -m2 | |
1007 | $ hg -q -R repo2/s push |
|
1007 | $ hg -q -R repo2/s push | |
1008 | $ hg -R repo2/s up -C 0 |
|
1008 | $ hg -R repo2/s up -C 0 | |
1009 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1009 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1010 | $ echo 2 > repo2/s/b |
|
1010 | $ echo 2 > repo2/s/b | |
1011 | $ hg -R repo2/s ci -m3 -A |
|
1011 | $ hg -R repo2/s ci -m3 -A | |
1012 | adding b |
|
1012 | adding b | |
1013 | created new head |
|
1013 | created new head | |
1014 | $ hg -R repo2 ci -m3 |
|
1014 | $ hg -R repo2 ci -m3 | |
1015 | $ hg -q -R repo2 push |
|
1015 | $ hg -q -R repo2 push | |
1016 | abort: push creates new remote head cc505f09a8b2 (in subrepository "s") |
|
1016 | abort: push creates new remote head cc505f09a8b2 (in subrepository "s") | |
1017 | (merge or see 'hg help push' for details about pushing new heads) |
|
1017 | (merge or see 'hg help push' for details about pushing new heads) | |
1018 | [255] |
|
1018 | [255] | |
1019 | $ hg -R repo update |
|
1019 | $ hg -R repo update | |
1020 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1020 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1021 |
|
1021 | |||
1022 | test if untracked file is not overwritten |
|
1022 | test if untracked file is not overwritten | |
1023 |
|
1023 | |||
1024 | (this also tests that updated .hgsubstate is treated as "modified", |
|
1024 | (this also tests that updated .hgsubstate is treated as "modified", | |
1025 | when 'merge.update()' is aborted before 'merge.recordupdates()', even |
|
1025 | when 'merge.update()' is aborted before 'merge.recordupdates()', even | |
1026 | if none of mode, size and timestamp of it isn't changed on the |
|
1026 | if none of mode, size and timestamp of it isn't changed on the | |
1027 | filesystem (see also issue4583)) |
|
1027 | filesystem (see also issue4583)) | |
1028 |
|
1028 | |||
1029 | $ echo issue3276_ok > repo/s/b |
|
1029 | $ echo issue3276_ok > repo/s/b | |
1030 | $ hg -R repo2 push -f -q |
|
1030 | $ hg -R repo2 push -f -q | |
1031 | $ touch -t 200001010000 repo/.hgsubstate |
|
1031 | $ touch -t 200001010000 repo/.hgsubstate | |
1032 |
|
1032 | |||
1033 | $ cat >> repo/.hg/hgrc <<EOF |
|
1033 | $ cat >> repo/.hg/hgrc <<EOF | |
1034 | > [fakedirstatewritetime] |
|
1034 | > [fakedirstatewritetime] | |
1035 | > # emulate invoking dirstate.write() via repo.status() |
|
1035 | > # emulate invoking dirstate.write() via repo.status() | |
1036 | > # at 2000-01-01 00:00 |
|
1036 | > # at 2000-01-01 00:00 | |
1037 | > fakenow = 200001010000 |
|
1037 | > fakenow = 200001010000 | |
1038 | > |
|
1038 | > | |
1039 | > [extensions] |
|
1039 | > [extensions] | |
1040 | > fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py |
|
1040 | > fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py | |
1041 | > EOF |
|
1041 | > EOF | |
1042 | $ hg -R repo update |
|
1042 | $ hg -R repo update | |
1043 | b: untracked file differs |
|
1043 | b: untracked file differs | |
1044 | abort: untracked files in working directory differ from files in requested revision (in subrepository "s") |
|
1044 | abort: untracked files in working directory differ from files in requested revision (in subrepository "s") | |
1045 | [255] |
|
1045 | [255] | |
1046 | $ cat >> repo/.hg/hgrc <<EOF |
|
1046 | $ cat >> repo/.hg/hgrc <<EOF | |
1047 | > [extensions] |
|
1047 | > [extensions] | |
1048 | > fakedirstatewritetime = ! |
|
1048 | > fakedirstatewritetime = ! | |
1049 | > EOF |
|
1049 | > EOF | |
1050 |
|
1050 | |||
1051 | $ cat repo/s/b |
|
1051 | $ cat repo/s/b | |
1052 | issue3276_ok |
|
1052 | issue3276_ok | |
1053 | $ rm repo/s/b |
|
1053 | $ rm repo/s/b | |
1054 | $ touch -t 200001010000 repo/.hgsubstate |
|
1054 | $ touch -t 200001010000 repo/.hgsubstate | |
1055 | $ hg -R repo revert --all |
|
1055 | $ hg -R repo revert --all | |
1056 | reverting repo/.hgsubstate |
|
1056 | reverting repo/.hgsubstate | |
1057 | reverting subrepo s |
|
1057 | reverting subrepo s | |
1058 | $ hg -R repo update |
|
1058 | $ hg -R repo update | |
1059 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1059 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1060 | $ cat repo/s/b |
|
1060 | $ cat repo/s/b | |
1061 | 2 |
|
1061 | 2 | |
1062 | $ rm -rf repo2 repo |
|
1062 | $ rm -rf repo2 repo | |
1063 |
|
1063 | |||
1064 |
|
1064 | |||
1065 | Issue1852 subrepos with relative paths always push/pull relative to default |
|
1065 | Issue1852 subrepos with relative paths always push/pull relative to default | |
1066 |
|
1066 | |||
1067 | Prepare a repo with subrepo |
|
1067 | Prepare a repo with subrepo | |
1068 |
|
1068 | |||
1069 | $ hg init issue1852a |
|
1069 | $ hg init issue1852a | |
1070 | $ cd issue1852a |
|
1070 | $ cd issue1852a | |
1071 | $ hg init sub/repo |
|
1071 | $ hg init sub/repo | |
1072 | $ echo test > sub/repo/foo |
|
1072 | $ echo test > sub/repo/foo | |
1073 | $ hg -R sub/repo add sub/repo/foo |
|
1073 | $ hg -R sub/repo add sub/repo/foo | |
1074 | $ echo sub/repo = sub/repo > .hgsub |
|
1074 | $ echo sub/repo = sub/repo > .hgsub | |
1075 | $ hg add .hgsub |
|
1075 | $ hg add .hgsub | |
1076 | $ hg ci -mtest |
|
1076 | $ hg ci -mtest | |
1077 | committing subrepository sub/repo |
|
1077 | committing subrepository sub/repo | |
1078 | $ echo test >> sub/repo/foo |
|
1078 | $ echo test >> sub/repo/foo | |
1079 | $ hg ci -mtest |
|
1079 | $ hg ci -mtest | |
1080 | committing subrepository sub/repo |
|
1080 | committing subrepository sub/repo | |
1081 | $ hg cat sub/repo/foo |
|
1081 | $ hg cat sub/repo/foo | |
1082 | test |
|
1082 | test | |
1083 | test |
|
1083 | test | |
1084 | $ hg cat sub/repo/foo -Tjson | sed 's|\\\\|/|g' |
|
1084 | $ hg cat sub/repo/foo -Tjson | sed 's|\\\\|/|g' | |
1085 | [ |
|
1085 | [ | |
1086 | { |
|
1086 | { | |
1087 | "data": "test\ntest\n", |
|
1087 | "data": "test\ntest\n", | |
1088 | "path": "foo" |
|
1088 | "path": "foo" | |
1089 | } |
|
1089 | } | |
1090 | ] |
|
1090 | ] | |
1091 |
|
1091 | |||
1092 | non-exact match: |
|
1092 | non-exact match: | |
1093 |
|
1093 | |||
1094 | $ hg cat -T '{path|relpath}\n' 'glob:**' |
|
1094 | $ hg cat -T '{path|relpath}\n' 'glob:**' | |
1095 | .hgsub |
|
1095 | .hgsub | |
1096 | .hgsubstate |
|
1096 | .hgsubstate | |
1097 | sub/repo/foo |
|
1097 | sub/repo/foo | |
1098 | $ hg cat -T '{path|relpath}\n' 're:^sub' |
|
1098 | $ hg cat -T '{path|relpath}\n' 're:^sub' | |
1099 | sub/repo/foo |
|
1099 | sub/repo/foo | |
1100 |
|
1100 | |||
1101 | missing subrepos in working directory: |
|
1101 | missing subrepos in working directory: | |
1102 |
|
1102 | |||
1103 | $ mkdir -p tmp/sub/repo |
|
1103 | $ mkdir -p tmp/sub/repo | |
1104 | $ hg cat -r 0 --output tmp/%p_p sub/repo/foo |
|
1104 | $ hg cat -r 0 --output tmp/%p_p sub/repo/foo | |
1105 | $ cat tmp/sub/repo/foo_p |
|
1105 | $ cat tmp/sub/repo/foo_p | |
1106 | test |
|
1106 | test | |
1107 | $ mv sub/repo sub_ |
|
1107 | $ mv sub/repo sub_ | |
1108 | $ hg cat sub/repo/baz |
|
1108 | $ hg cat sub/repo/baz | |
1109 | skipping missing subrepository: sub/repo |
|
1109 | skipping missing subrepository: sub/repo | |
1110 | [1] |
|
1110 | [1] | |
1111 | $ rm -rf sub/repo |
|
1111 | $ rm -rf sub/repo | |
1112 | $ mv sub_ sub/repo |
|
1112 | $ mv sub_ sub/repo | |
1113 | $ cd .. |
|
1113 | $ cd .. | |
1114 |
|
1114 | |||
1115 | Create repo without default path, pull top repo, and see what happens on update |
|
1115 | Create repo without default path, pull top repo, and see what happens on update | |
1116 |
|
1116 | |||
1117 | $ hg init issue1852b |
|
1117 | $ hg init issue1852b | |
1118 | $ hg -R issue1852b pull issue1852a |
|
1118 | $ hg -R issue1852b pull issue1852a | |
1119 | pulling from issue1852a |
|
1119 | pulling from issue1852a | |
1120 | requesting all changes |
|
1120 | requesting all changes | |
1121 | adding changesets |
|
1121 | adding changesets | |
1122 | adding manifests |
|
1122 | adding manifests | |
1123 | adding file changes |
|
1123 | adding file changes | |
1124 | added 2 changesets with 3 changes to 2 files |
|
1124 | added 2 changesets with 3 changes to 2 files | |
1125 | new changesets 19487b456929:be5eb94e7215 |
|
1125 | new changesets 19487b456929:be5eb94e7215 | |
1126 | (run 'hg update' to get a working copy) |
|
1126 | (run 'hg update' to get a working copy) | |
1127 | $ hg -R issue1852b update |
|
1127 | $ hg -R issue1852b update | |
1128 | abort: default path for subrepository not found (in subrepository "sub/repo") |
|
1128 | abort: default path for subrepository not found (in subrepository "sub/repo") | |
1129 | [255] |
|
1129 | [255] | |
1130 |
|
1130 | |||
1131 | Ensure a full traceback, not just the SubrepoAbort part |
|
1131 | Ensure a full traceback, not just the SubrepoAbort part | |
1132 |
|
1132 | |||
1133 | $ hg -R issue1852b update --traceback 2>&1 | grep 'raise error\.Abort' |
|
1133 | $ hg -R issue1852b update --traceback 2>&1 | grep 'raise error\.Abort' | |
1134 | raise error.Abort(_(b"default path for subrepository not found")) |
|
1134 | raise error.Abort(_(b"default path for subrepository not found")) | |
1135 |
|
1135 | |||
1136 | Pull -u now doesn't help |
|
1136 | Pull -u now doesn't help | |
1137 |
|
1137 | |||
1138 | $ hg -R issue1852b pull -u issue1852a |
|
1138 | $ hg -R issue1852b pull -u issue1852a | |
1139 | pulling from issue1852a |
|
1139 | pulling from issue1852a | |
1140 | searching for changes |
|
1140 | searching for changes | |
1141 | no changes found |
|
1141 | no changes found | |
1142 |
|
1142 | |||
1143 | Try the same, but with pull -u |
|
1143 | Try the same, but with pull -u | |
1144 |
|
1144 | |||
1145 | $ hg init issue1852c |
|
1145 | $ hg init issue1852c | |
1146 | $ hg -R issue1852c pull -r0 -u issue1852a |
|
1146 | $ hg -R issue1852c pull -r0 -u issue1852a | |
1147 | pulling from issue1852a |
|
1147 | pulling from issue1852a | |
1148 | adding changesets |
|
1148 | adding changesets | |
1149 | adding manifests |
|
1149 | adding manifests | |
1150 | adding file changes |
|
1150 | adding file changes | |
1151 | added 1 changesets with 2 changes to 2 files |
|
1151 | added 1 changesets with 2 changes to 2 files | |
1152 | new changesets 19487b456929 |
|
1152 | new changesets 19487b456929 | |
1153 | cloning subrepo sub/repo from issue1852a/sub/repo |
|
1153 | cloning subrepo sub/repo from issue1852a/sub/repo | |
1154 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1154 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1155 |
|
1155 | |||
1156 | Try to push from the other side |
|
1156 | Try to push from the other side | |
1157 |
|
1157 | |||
1158 | $ hg -R issue1852a push `pwd`/issue1852c |
|
1158 | $ hg -R issue1852a push `pwd`/issue1852c | |
1159 | pushing to $TESTTMP/issue1852c |
|
1159 | pushing to $TESTTMP/issue1852c | |
1160 | pushing subrepo sub/repo to $TESTTMP/issue1852c/sub/repo |
|
1160 | pushing subrepo sub/repo to $TESTTMP/issue1852c/sub/repo | |
1161 | searching for changes |
|
1161 | searching for changes | |
1162 | no changes found |
|
1162 | no changes found | |
1163 | searching for changes |
|
1163 | searching for changes | |
1164 | adding changesets |
|
1164 | adding changesets | |
1165 | adding manifests |
|
1165 | adding manifests | |
1166 | adding file changes |
|
1166 | adding file changes | |
1167 | added 1 changesets with 1 changes to 1 files |
|
1167 | added 1 changesets with 1 changes to 1 files | |
1168 |
|
1168 | |||
1169 | Incoming and outgoing should not use the default path: |
|
1169 | Incoming and outgoing should not use the default path: | |
1170 |
|
1170 | |||
1171 | $ hg clone -q issue1852a issue1852d |
|
1171 | $ hg clone -q issue1852a issue1852d | |
1172 | $ hg -R issue1852d outgoing --subrepos issue1852c |
|
1172 | $ hg -R issue1852d outgoing --subrepos issue1852c | |
1173 | comparing with issue1852c |
|
1173 | comparing with issue1852c | |
1174 | searching for changes |
|
1174 | searching for changes | |
1175 | no changes found |
|
1175 | no changes found | |
1176 | comparing with issue1852c/sub/repo |
|
1176 | comparing with issue1852c/sub/repo | |
1177 | searching for changes |
|
1177 | searching for changes | |
1178 | no changes found |
|
1178 | no changes found | |
1179 | [1] |
|
1179 | [1] | |
1180 | $ hg -R issue1852d incoming --subrepos issue1852c |
|
1180 | $ hg -R issue1852d incoming --subrepos issue1852c | |
1181 | comparing with issue1852c |
|
1181 | comparing with issue1852c | |
1182 | searching for changes |
|
1182 | searching for changes | |
1183 | no changes found |
|
1183 | no changes found | |
1184 | comparing with issue1852c/sub/repo |
|
1184 | comparing with issue1852c/sub/repo | |
1185 | searching for changes |
|
1185 | searching for changes | |
1186 | no changes found |
|
1186 | no changes found | |
1187 | [1] |
|
1187 | [1] | |
1188 |
|
1188 | |||
1189 | Check that merge of a new subrepo doesn't write the uncommitted state to |
|
1189 | Check that merge of a new subrepo doesn't write the uncommitted state to | |
1190 | .hgsubstate (issue4622) |
|
1190 | .hgsubstate (issue4622) | |
1191 |
|
1191 | |||
1192 | $ hg init issue1852a/addedsub |
|
1192 | $ hg init issue1852a/addedsub | |
1193 | $ echo zzz > issue1852a/addedsub/zz.txt |
|
1193 | $ echo zzz > issue1852a/addedsub/zz.txt | |
1194 | $ hg -R issue1852a/addedsub ci -Aqm "initial ZZ" |
|
1194 | $ hg -R issue1852a/addedsub ci -Aqm "initial ZZ" | |
1195 |
|
1195 | |||
1196 | $ hg clone issue1852a/addedsub issue1852d/addedsub |
|
1196 | $ hg clone issue1852a/addedsub issue1852d/addedsub | |
1197 | updating to branch default |
|
1197 | updating to branch default | |
1198 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1198 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1199 |
|
1199 | |||
1200 | $ echo def > issue1852a/sub/repo/foo |
|
1200 | $ echo def > issue1852a/sub/repo/foo | |
1201 | $ hg -R issue1852a ci -SAm 'tweaked subrepo' |
|
1201 | $ hg -R issue1852a ci -SAm 'tweaked subrepo' | |
1202 | adding tmp/sub/repo/foo_p |
|
1202 | adding tmp/sub/repo/foo_p | |
1203 | committing subrepository sub/repo |
|
1203 | committing subrepository sub/repo | |
1204 |
|
1204 | |||
1205 | $ echo 'addedsub = addedsub' >> issue1852d/.hgsub |
|
1205 | $ echo 'addedsub = addedsub' >> issue1852d/.hgsub | |
1206 | $ echo xyz > issue1852d/sub/repo/foo |
|
1206 | $ echo xyz > issue1852d/sub/repo/foo | |
1207 | $ hg -R issue1852d pull -u |
|
1207 | $ hg -R issue1852d pull -u | |
1208 | pulling from $TESTTMP/issue1852a |
|
1208 | pulling from $TESTTMP/issue1852a | |
1209 | searching for changes |
|
1209 | searching for changes | |
1210 | adding changesets |
|
1210 | adding changesets | |
1211 | adding manifests |
|
1211 | adding manifests | |
1212 | adding file changes |
|
1212 | adding file changes | |
1213 | added 1 changesets with 2 changes to 2 files |
|
1213 | added 1 changesets with 2 changes to 2 files | |
1214 | new changesets c82b79fdcc5b |
|
1214 | new changesets c82b79fdcc5b | |
1215 | subrepository sub/repo diverged (local revision: f42d5c7504a8, remote revision: 46cd4aac504c) |
|
1215 | subrepository sub/repo diverged (local revision: f42d5c7504a8, remote revision: 46cd4aac504c) | |
1216 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. |
|
1216 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | |
1217 | what do you want to do? m |
|
1217 | what do you want to do? m | |
1218 | pulling subrepo sub/repo from $TESTTMP/issue1852a/sub/repo |
|
1218 | pulling subrepo sub/repo from $TESTTMP/issue1852a/sub/repo | |
1219 | searching for changes |
|
1219 | searching for changes | |
1220 | adding changesets |
|
1220 | adding changesets | |
1221 | adding manifests |
|
1221 | adding manifests | |
1222 | adding file changes |
|
1222 | adding file changes | |
1223 | added 1 changesets with 1 changes to 1 files |
|
1223 | added 1 changesets with 1 changes to 1 files | |
1224 | new changesets 46cd4aac504c |
|
1224 | new changesets 46cd4aac504c | |
1225 | subrepository sources for sub/repo differ |
|
1225 | subrepository sources for sub/repo differ | |
1226 | you can use (l)ocal source (f42d5c7504a8) or (r)emote source (46cd4aac504c). |
|
1226 | you can use (l)ocal source (f42d5c7504a8) or (r)emote source (46cd4aac504c). | |
1227 | what do you want to do? l |
|
1227 | what do you want to do? l | |
1228 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1228 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1229 | $ cat issue1852d/.hgsubstate |
|
1229 | $ cat issue1852d/.hgsubstate | |
1230 | f42d5c7504a811dda50f5cf3e5e16c3330b87172 sub/repo |
|
1230 | f42d5c7504a811dda50f5cf3e5e16c3330b87172 sub/repo | |
1231 |
|
1231 | |||
1232 | Check status of files when none of them belong to the first |
|
1232 | Check status of files when none of them belong to the first | |
1233 | subrepository: |
|
1233 | subrepository: | |
1234 |
|
1234 | |||
1235 | $ hg init subrepo-status |
|
1235 | $ hg init subrepo-status | |
1236 | $ cd subrepo-status |
|
1236 | $ cd subrepo-status | |
1237 | $ hg init subrepo-1 |
|
1237 | $ hg init subrepo-1 | |
1238 | $ hg init subrepo-2 |
|
1238 | $ hg init subrepo-2 | |
1239 | $ cd subrepo-2 |
|
1239 | $ cd subrepo-2 | |
1240 | $ touch file |
|
1240 | $ touch file | |
1241 | $ hg add file |
|
1241 | $ hg add file | |
1242 | $ cd .. |
|
1242 | $ cd .. | |
1243 | $ echo subrepo-1 = subrepo-1 > .hgsub |
|
1243 | $ echo subrepo-1 = subrepo-1 > .hgsub | |
1244 | $ echo subrepo-2 = subrepo-2 >> .hgsub |
|
1244 | $ echo subrepo-2 = subrepo-2 >> .hgsub | |
1245 | $ hg add .hgsub |
|
1245 | $ hg add .hgsub | |
1246 | $ hg ci -m 'Added subrepos' |
|
1246 | $ hg ci -m 'Added subrepos' | |
1247 | committing subrepository subrepo-2 |
|
1247 | committing subrepository subrepo-2 | |
1248 | $ hg st subrepo-2/file |
|
1248 | $ hg st subrepo-2/file | |
1249 |
|
1249 | |||
1250 | Check that share works with subrepo |
|
1250 | Check that share works with subrepo | |
1251 | $ hg --config extensions.share= share . ../shared |
|
1251 | $ hg --config extensions.share= share . ../shared | |
1252 | updating working directory |
|
1252 | updating working directory | |
1253 | sharing subrepo subrepo-1 from $TESTTMP/subrepo-status/subrepo-1 |
|
1253 | sharing subrepo subrepo-1 from $TESTTMP/subrepo-status/subrepo-1 | |
1254 | sharing subrepo subrepo-2 from $TESTTMP/subrepo-status/subrepo-2 |
|
1254 | sharing subrepo subrepo-2 from $TESTTMP/subrepo-status/subrepo-2 | |
1255 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1255 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1256 | $ find ../shared/* | sort |
|
1256 | $ find ../shared/* | sort | |
1257 | ../shared/subrepo-1 |
|
1257 | ../shared/subrepo-1 | |
1258 | ../shared/subrepo-1/.hg |
|
1258 | ../shared/subrepo-1/.hg | |
1259 | ../shared/subrepo-1/.hg/cache |
|
1259 | ../shared/subrepo-1/.hg/cache | |
1260 | ../shared/subrepo-1/.hg/cache/storehash |
|
1260 | ../shared/subrepo-1/.hg/cache/storehash | |
1261 | ../shared/subrepo-1/.hg/cache/storehash/* (glob) |
|
1261 | ../shared/subrepo-1/.hg/cache/storehash/* (glob) | |
1262 | ../shared/subrepo-1/.hg/hgrc |
|
1262 | ../shared/subrepo-1/.hg/hgrc | |
1263 | ../shared/subrepo-1/.hg/requires |
|
1263 | ../shared/subrepo-1/.hg/requires | |
1264 | ../shared/subrepo-1/.hg/sharedpath |
|
1264 | ../shared/subrepo-1/.hg/sharedpath | |
1265 | ../shared/subrepo-1/.hg/wcache |
|
1265 | ../shared/subrepo-1/.hg/wcache | |
1266 | ../shared/subrepo-2 |
|
1266 | ../shared/subrepo-2 | |
1267 | ../shared/subrepo-2/.hg |
|
1267 | ../shared/subrepo-2/.hg | |
1268 | ../shared/subrepo-2/.hg/branch |
|
1268 | ../shared/subrepo-2/.hg/branch | |
1269 | ../shared/subrepo-2/.hg/cache |
|
1269 | ../shared/subrepo-2/.hg/cache | |
1270 | ../shared/subrepo-2/.hg/cache/storehash |
|
1270 | ../shared/subrepo-2/.hg/cache/storehash | |
1271 | ../shared/subrepo-2/.hg/cache/storehash/* (glob) |
|
1271 | ../shared/subrepo-2/.hg/cache/storehash/* (glob) | |
1272 | ../shared/subrepo-2/.hg/dirstate |
|
1272 | ../shared/subrepo-2/.hg/dirstate | |
1273 | ../shared/subrepo-2/.hg/hgrc |
|
1273 | ../shared/subrepo-2/.hg/hgrc | |
1274 | ../shared/subrepo-2/.hg/requires |
|
1274 | ../shared/subrepo-2/.hg/requires | |
1275 | ../shared/subrepo-2/.hg/sharedpath |
|
1275 | ../shared/subrepo-2/.hg/sharedpath | |
1276 | ../shared/subrepo-2/.hg/wcache |
|
1276 | ../shared/subrepo-2/.hg/wcache | |
1277 | ../shared/subrepo-2/.hg/wcache/checkisexec (execbit !) |
|
1277 | ../shared/subrepo-2/.hg/wcache/checkisexec (execbit !) | |
1278 | ../shared/subrepo-2/.hg/wcache/checklink (symlink !) |
|
1278 | ../shared/subrepo-2/.hg/wcache/checklink (symlink !) | |
1279 | ../shared/subrepo-2/.hg/wcache/checklink-target (symlink !) |
|
1279 | ../shared/subrepo-2/.hg/wcache/checklink-target (symlink !) | |
1280 | ../shared/subrepo-2/.hg/wcache/manifestfulltextcache (reporevlogstore !) |
|
1280 | ../shared/subrepo-2/.hg/wcache/manifestfulltextcache (reporevlogstore !) | |
1281 | ../shared/subrepo-2/file |
|
1281 | ../shared/subrepo-2/file | |
1282 | $ hg -R ../shared in |
|
1282 | $ hg -R ../shared in | |
1283 | abort: repository default not found |
|
1283 | abort: repository default not found | |
1284 | [255] |
|
1284 | [255] | |
1285 | $ hg -R ../shared/subrepo-2 showconfig paths |
|
1285 | $ hg -R ../shared/subrepo-2 showconfig paths | |
1286 | paths.default=$TESTTMP/subrepo-status/subrepo-2 |
|
1286 | paths.default=$TESTTMP/subrepo-status/subrepo-2 | |
1287 | $ hg -R ../shared/subrepo-1 sum --remote |
|
1287 | $ hg -R ../shared/subrepo-1 sum --remote | |
1288 | parent: -1:000000000000 tip (empty repository) |
|
1288 | parent: -1:000000000000 tip (empty repository) | |
1289 | branch: default |
|
1289 | branch: default | |
1290 | commit: (clean) |
|
1290 | commit: (clean) | |
1291 | update: (current) |
|
1291 | update: (current) | |
1292 | remote: (synced) |
|
1292 | remote: (synced) | |
1293 |
|
1293 | |||
1294 | Check hg update --clean |
|
1294 | Check hg update --clean | |
1295 | $ cd $TESTTMP/t |
|
1295 | $ cd $TESTTMP/t | |
1296 | $ rm -r t/t.orig |
|
1296 | $ rm -r t/t.orig | |
1297 | $ hg status -S --all |
|
1297 | $ hg status -S --all | |
1298 | C .hgsub |
|
1298 | C .hgsub | |
1299 | C .hgsubstate |
|
1299 | C .hgsubstate | |
1300 | C a |
|
1300 | C a | |
1301 | C s/.hgsub |
|
1301 | C s/.hgsub | |
1302 | C s/.hgsubstate |
|
1302 | C s/.hgsubstate | |
1303 | C s/a |
|
1303 | C s/a | |
1304 | C s/ss/a |
|
1304 | C s/ss/a | |
1305 | C t/t |
|
1305 | C t/t | |
1306 | $ echo c1 > s/a |
|
1306 | $ echo c1 > s/a | |
1307 | $ cd s |
|
1307 | $ cd s | |
1308 | $ echo c1 > b |
|
1308 | $ echo c1 > b | |
1309 | $ echo c1 > c |
|
1309 | $ echo c1 > c | |
1310 | $ hg add b |
|
1310 | $ hg add b | |
1311 | $ cd .. |
|
1311 | $ cd .. | |
1312 | $ hg status -S |
|
1312 | $ hg status -S | |
1313 | M s/a |
|
1313 | M s/a | |
1314 | A s/b |
|
1314 | A s/b | |
1315 | ? s/c |
|
1315 | ? s/c | |
1316 | $ hg update -C |
|
1316 | $ hg update -C | |
1317 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1317 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1318 | updated to "925c17564ef8: 13" |
|
1318 | updated to "925c17564ef8: 13" | |
1319 | 2 other heads for branch "default" |
|
1319 | 2 other heads for branch "default" | |
1320 | $ hg status -S |
|
1320 | $ hg status -S | |
1321 | ? s/b |
|
1321 | ? s/b | |
1322 | ? s/c |
|
1322 | ? s/c | |
1323 |
|
1323 | |||
1324 | Sticky subrepositories, no changes |
|
1324 | Sticky subrepositories, no changes | |
1325 | $ cd $TESTTMP/t |
|
1325 | $ cd $TESTTMP/t | |
1326 | $ hg id |
|
1326 | $ hg id | |
1327 | 925c17564ef8 tip |
|
1327 | 925c17564ef8 tip | |
1328 | $ hg -R s id |
|
1328 | $ hg -R s id | |
1329 | 12a213df6fa9 tip |
|
1329 | 12a213df6fa9 tip | |
1330 | $ hg -R t id |
|
1330 | $ hg -R t id | |
1331 | 52c0adc0515a tip |
|
1331 | 52c0adc0515a tip | |
1332 | $ hg update 11 |
|
1332 | $ hg update 11 | |
1333 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1333 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1334 | $ hg id |
|
1334 | $ hg id | |
1335 | 365661e5936a |
|
1335 | 365661e5936a | |
1336 | $ hg -R s id |
|
1336 | $ hg -R s id | |
1337 | fc627a69481f |
|
1337 | fc627a69481f | |
1338 | $ hg -R t id |
|
1338 | $ hg -R t id | |
1339 | e95bcfa18a35 |
|
1339 | e95bcfa18a35 | |
1340 |
|
1340 | |||
1341 | Sticky subrepositories, file changes |
|
1341 | Sticky subrepositories, file changes | |
1342 | $ touch s/f1 |
|
1342 | $ touch s/f1 | |
1343 | $ touch t/f1 |
|
1343 | $ touch t/f1 | |
1344 | $ hg add -S s/f1 |
|
1344 | $ hg add -S s/f1 | |
1345 | $ hg add -S t/f1 |
|
1345 | $ hg add -S t/f1 | |
1346 | $ hg id |
|
1346 | $ hg id | |
1347 | 365661e5936a+ |
|
1347 | 365661e5936a+ | |
1348 | $ hg -R s id |
|
1348 | $ hg -R s id | |
1349 | fc627a69481f+ |
|
1349 | fc627a69481f+ | |
1350 | $ hg -R t id |
|
1350 | $ hg -R t id | |
1351 | e95bcfa18a35+ |
|
1351 | e95bcfa18a35+ | |
1352 | $ hg update tip |
|
1352 | $ hg update tip | |
1353 | subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9) |
|
1353 | subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9) | |
1354 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. |
|
1354 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | |
1355 | what do you want to do? m |
|
1355 | what do you want to do? m | |
1356 | subrepository sources for s differ |
|
1356 | subrepository sources for s differ | |
1357 | you can use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9). |
|
1357 | you can use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9). | |
1358 | what do you want to do? l |
|
1358 | what do you want to do? l | |
1359 | subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a) |
|
1359 | subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a) | |
1360 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. |
|
1360 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | |
1361 | what do you want to do? m |
|
1361 | what do you want to do? m | |
1362 | subrepository sources for t differ |
|
1362 | subrepository sources for t differ | |
1363 | you can use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a). |
|
1363 | you can use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a). | |
1364 | what do you want to do? l |
|
1364 | what do you want to do? l | |
1365 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1365 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1366 | $ hg id |
|
1366 | $ hg id | |
1367 | 925c17564ef8+ tip |
|
1367 | 925c17564ef8+ tip | |
1368 | $ hg -R s id |
|
1368 | $ hg -R s id | |
1369 | fc627a69481f+ |
|
1369 | fc627a69481f+ | |
1370 | $ hg -R t id |
|
1370 | $ hg -R t id | |
1371 | e95bcfa18a35+ |
|
1371 | e95bcfa18a35+ | |
1372 | $ hg update --clean tip |
|
1372 | $ hg update --clean tip | |
1373 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1373 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1374 |
|
1374 | |||
1375 | Sticky subrepository, revision updates |
|
1375 | Sticky subrepository, revision updates | |
1376 | $ hg id |
|
1376 | $ hg id | |
1377 | 925c17564ef8 tip |
|
1377 | 925c17564ef8 tip | |
1378 | $ hg -R s id |
|
1378 | $ hg -R s id | |
1379 | 12a213df6fa9 tip |
|
1379 | 12a213df6fa9 tip | |
1380 | $ hg -R t id |
|
1380 | $ hg -R t id | |
1381 | 52c0adc0515a tip |
|
1381 | 52c0adc0515a tip | |
1382 | $ cd s |
|
1382 | $ cd s | |
1383 | $ hg update -r -2 |
|
1383 | $ hg update -r -2 | |
1384 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1384 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1385 | $ cd ../t |
|
1385 | $ cd ../t | |
1386 | $ hg update -r 2 |
|
1386 | $ hg update -r 2 | |
1387 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1387 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1388 | $ cd .. |
|
1388 | $ cd .. | |
1389 | $ hg update 10 |
|
1389 | $ hg update 10 | |
1390 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) |
|
1390 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) | |
1391 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. |
|
1391 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | |
1392 | what do you want to do? m |
|
1392 | what do you want to do? m | |
1393 | subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c) |
|
1393 | subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c) | |
1394 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. |
|
1394 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | |
1395 | what do you want to do? m |
|
1395 | what do you want to do? m | |
1396 | subrepository sources for t differ (in checked out version) |
|
1396 | subrepository sources for t differ (in checked out version) | |
1397 | you can use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c). |
|
1397 | you can use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c). | |
1398 | what do you want to do? l |
|
1398 | what do you want to do? l | |
1399 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1399 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1400 | $ hg id |
|
1400 | $ hg id | |
1401 | e45c8b14af55+ |
|
1401 | e45c8b14af55+ | |
1402 | $ hg -R s id |
|
1402 | $ hg -R s id | |
1403 | 02dcf1d70411 |
|
1403 | 02dcf1d70411 | |
1404 | $ hg -R t id |
|
1404 | $ hg -R t id | |
1405 | 7af322bc1198 |
|
1405 | 7af322bc1198 | |
1406 |
|
1406 | |||
1407 | Sticky subrepository, file changes and revision updates |
|
1407 | Sticky subrepository, file changes and revision updates | |
1408 | $ touch s/f1 |
|
1408 | $ touch s/f1 | |
1409 | $ touch t/f1 |
|
1409 | $ touch t/f1 | |
1410 | $ hg add -S s/f1 |
|
1410 | $ hg add -S s/f1 | |
1411 | $ hg add -S t/f1 |
|
1411 | $ hg add -S t/f1 | |
1412 | $ hg id |
|
1412 | $ hg id | |
1413 | e45c8b14af55+ |
|
1413 | e45c8b14af55+ | |
1414 | $ hg -R s id |
|
1414 | $ hg -R s id | |
1415 | 02dcf1d70411+ |
|
1415 | 02dcf1d70411+ | |
1416 | $ hg -R t id |
|
1416 | $ hg -R t id | |
1417 | 7af322bc1198+ |
|
1417 | 7af322bc1198+ | |
1418 | $ hg update tip |
|
1418 | $ hg update tip | |
1419 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9) |
|
1419 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9) | |
1420 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. |
|
1420 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | |
1421 | what do you want to do? m |
|
1421 | what do you want to do? m | |
1422 | subrepository sources for s differ |
|
1422 | subrepository sources for s differ | |
1423 | you can use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9). |
|
1423 | you can use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9). | |
1424 | what do you want to do? l |
|
1424 | what do you want to do? l | |
1425 | subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a) |
|
1425 | subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a) | |
1426 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. |
|
1426 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | |
1427 | what do you want to do? m |
|
1427 | what do you want to do? m | |
1428 | subrepository sources for t differ |
|
1428 | subrepository sources for t differ | |
1429 | you can use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a). |
|
1429 | you can use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a). | |
1430 | what do you want to do? l |
|
1430 | what do you want to do? l | |
1431 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1431 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1432 | $ hg id |
|
1432 | $ hg id | |
1433 | 925c17564ef8+ tip |
|
1433 | 925c17564ef8+ tip | |
1434 | $ hg -R s id |
|
1434 | $ hg -R s id | |
1435 | 02dcf1d70411+ |
|
1435 | 02dcf1d70411+ | |
1436 | $ hg -R t id |
|
1436 | $ hg -R t id | |
1437 | 7af322bc1198+ |
|
1437 | 7af322bc1198+ | |
1438 |
|
1438 | |||
1439 | Sticky repository, update --clean |
|
1439 | Sticky repository, update --clean | |
1440 | $ hg update --clean tip |
|
1440 | $ hg update --clean tip | |
1441 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1441 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1442 | $ hg id |
|
1442 | $ hg id | |
1443 | 925c17564ef8 tip |
|
1443 | 925c17564ef8 tip | |
1444 | $ hg -R s id |
|
1444 | $ hg -R s id | |
1445 | 12a213df6fa9 tip |
|
1445 | 12a213df6fa9 tip | |
1446 | $ hg -R t id |
|
1446 | $ hg -R t id | |
1447 | 52c0adc0515a tip |
|
1447 | 52c0adc0515a tip | |
1448 |
|
1448 | |||
1449 | Test subrepo already at intended revision: |
|
1449 | Test subrepo already at intended revision: | |
1450 | $ cd s |
|
1450 | $ cd s | |
1451 | $ hg update fc627a69481f |
|
1451 | $ hg update fc627a69481f | |
1452 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1452 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1453 | $ cd .. |
|
1453 | $ cd .. | |
1454 | $ hg update 11 |
|
1454 | $ hg update 11 | |
1455 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) |
|
1455 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) | |
1456 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. |
|
1456 | you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination]. | |
1457 | what do you want to do? m |
|
1457 | what do you want to do? m | |
1458 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1458 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1459 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1459 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1460 | $ hg id -n |
|
1460 | $ hg id -n | |
1461 | 11+ |
|
1461 | 11+ | |
1462 | $ hg -R s id |
|
1462 | $ hg -R s id | |
1463 | fc627a69481f |
|
1463 | fc627a69481f | |
1464 | $ hg -R t id |
|
1464 | $ hg -R t id | |
1465 | e95bcfa18a35 |
|
1465 | e95bcfa18a35 | |
1466 |
|
1466 | |||
1467 | Test that removing .hgsubstate doesn't break anything: |
|
1467 | Test that removing .hgsubstate doesn't break anything: | |
1468 |
|
1468 | |||
1469 | $ hg rm -f .hgsubstate |
|
1469 | $ hg rm -f .hgsubstate | |
1470 | $ hg ci -mrm |
|
1470 | $ hg ci -mrm | |
1471 | nothing changed |
|
1471 | nothing changed | |
1472 | [1] |
|
1472 | [1] | |
1473 | $ hg log -vr tip |
|
1473 | $ hg log -vr tip | |
1474 | changeset: 13:925c17564ef8 |
|
1474 | changeset: 13:925c17564ef8 | |
1475 | tag: tip |
|
1475 | tag: tip | |
1476 | user: test |
|
1476 | user: test | |
1477 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
1477 | date: Thu Jan 01 00:00:00 1970 +0000 | |
1478 | files: .hgsubstate |
|
1478 | files: .hgsubstate | |
1479 | description: |
|
1479 | description: | |
1480 | 13 |
|
1480 | 13 | |
1481 |
|
1481 | |||
1482 |
|
1482 | |||
1483 |
|
1483 | |||
1484 | Test that removing .hgsub removes .hgsubstate: |
|
1484 | Test that removing .hgsub removes .hgsubstate: | |
1485 |
|
1485 | |||
1486 | $ hg rm .hgsub |
|
1486 | $ hg rm .hgsub | |
1487 | $ hg ci -mrm2 |
|
1487 | $ hg ci -mrm2 | |
1488 | created new head |
|
1488 | created new head | |
1489 | $ hg log -vr tip |
|
1489 | $ hg log -vr tip | |
1490 | changeset: 14:2400bccd50af |
|
1490 | changeset: 14:2400bccd50af | |
1491 | tag: tip |
|
1491 | tag: tip | |
1492 | parent: 11:365661e5936a |
|
1492 | parent: 11:365661e5936a | |
1493 | user: test |
|
1493 | user: test | |
1494 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
1494 | date: Thu Jan 01 00:00:00 1970 +0000 | |
1495 | files: .hgsub .hgsubstate |
|
1495 | files: .hgsub .hgsubstate | |
1496 | description: |
|
1496 | description: | |
1497 | rm2 |
|
1497 | rm2 | |
1498 |
|
1498 | |||
1499 |
|
1499 | |||
1500 | Test issue3153: diff -S with deleted subrepos |
|
1500 | Test issue3153: diff -S with deleted subrepos | |
1501 |
|
1501 | |||
1502 | $ hg diff --nodates -S -c . |
|
1502 | $ hg diff --nodates -S -c . | |
1503 | diff -r 365661e5936a -r 2400bccd50af .hgsub |
|
1503 | diff -r 365661e5936a -r 2400bccd50af .hgsub | |
1504 | --- a/.hgsub |
|
1504 | --- a/.hgsub | |
1505 | +++ /dev/null |
|
1505 | +++ /dev/null | |
1506 | @@ -1,2 +0,0 @@ |
|
1506 | @@ -1,2 +0,0 @@ | |
1507 | -s = s |
|
1507 | -s = s | |
1508 | -t = t |
|
1508 | -t = t | |
1509 | diff -r 365661e5936a -r 2400bccd50af .hgsubstate |
|
1509 | diff -r 365661e5936a -r 2400bccd50af .hgsubstate | |
1510 | --- a/.hgsubstate |
|
1510 | --- a/.hgsubstate | |
1511 | +++ /dev/null |
|
1511 | +++ /dev/null | |
1512 | @@ -1,2 +0,0 @@ |
|
1512 | @@ -1,2 +0,0 @@ | |
1513 | -fc627a69481fcbe5f1135069e8a3881c023e4cf5 s |
|
1513 | -fc627a69481fcbe5f1135069e8a3881c023e4cf5 s | |
1514 | -e95bcfa18a358dc4936da981ebf4147b4cad1362 t |
|
1514 | -e95bcfa18a358dc4936da981ebf4147b4cad1362 t | |
1515 |
|
1515 | |||
1516 | Test behavior of add for explicit path in subrepo: |
|
1516 | Test behavior of add for explicit path in subrepo: | |
1517 | $ cd .. |
|
1517 | $ cd .. | |
1518 | $ hg init explicit |
|
1518 | $ hg init explicit | |
1519 | $ cd explicit |
|
1519 | $ cd explicit | |
1520 | $ echo s = s > .hgsub |
|
1520 | $ echo s = s > .hgsub | |
1521 | $ hg add .hgsub |
|
1521 | $ hg add .hgsub | |
1522 | $ hg init s |
|
1522 | $ hg init s | |
1523 | $ hg ci -m0 |
|
1523 | $ hg ci -m0 | |
1524 | Adding with an explicit path in a subrepo adds the file |
|
1524 | Adding with an explicit path in a subrepo adds the file | |
1525 | $ echo c1 > f1 |
|
1525 | $ echo c1 > f1 | |
1526 | $ echo c2 > s/f2 |
|
1526 | $ echo c2 > s/f2 | |
1527 | $ hg st -S |
|
1527 | $ hg st -S | |
1528 | ? f1 |
|
1528 | ? f1 | |
1529 | ? s/f2 |
|
1529 | ? s/f2 | |
1530 | $ hg add s/f2 |
|
1530 | $ hg add s/f2 | |
1531 | $ hg st -S |
|
1531 | $ hg st -S | |
1532 | A s/f2 |
|
1532 | A s/f2 | |
1533 | ? f1 |
|
1533 | ? f1 | |
1534 | $ hg ci -R s -m0 |
|
1534 | $ hg ci -R s -m0 | |
1535 | $ hg ci -Am1 |
|
1535 | $ hg ci -Am1 | |
1536 | adding f1 |
|
1536 | adding f1 | |
1537 | Adding with an explicit path in a subrepo with -S has the same behavior |
|
1537 | Adding with an explicit path in a subrepo with -S has the same behavior | |
1538 | $ echo c3 > f3 |
|
1538 | $ echo c3 > f3 | |
1539 | $ echo c4 > s/f4 |
|
1539 | $ echo c4 > s/f4 | |
1540 | $ hg st -S |
|
1540 | $ hg st -S | |
1541 | ? f3 |
|
1541 | ? f3 | |
1542 | ? s/f4 |
|
1542 | ? s/f4 | |
1543 | $ hg add -S s/f4 |
|
1543 | $ hg add -S s/f4 | |
1544 | $ hg st -S |
|
1544 | $ hg st -S | |
1545 | A s/f4 |
|
1545 | A s/f4 | |
1546 | ? f3 |
|
1546 | ? f3 | |
1547 | $ hg ci -R s -m1 |
|
1547 | $ hg ci -R s -m1 | |
1548 | $ hg ci -Ama2 |
|
1548 | $ hg ci -Ama2 | |
1549 | adding f3 |
|
1549 | adding f3 | |
1550 | Adding without a path or pattern silently ignores subrepos |
|
1550 | Adding without a path or pattern silently ignores subrepos | |
1551 | $ echo c5 > f5 |
|
1551 | $ echo c5 > f5 | |
1552 | $ echo c6 > s/f6 |
|
1552 | $ echo c6 > s/f6 | |
1553 | $ echo c7 > s/f7 |
|
1553 | $ echo c7 > s/f7 | |
1554 | $ hg st -S |
|
1554 | $ hg st -S | |
1555 | ? f5 |
|
1555 | ? f5 | |
1556 | ? s/f6 |
|
1556 | ? s/f6 | |
1557 | ? s/f7 |
|
1557 | ? s/f7 | |
1558 | $ hg add |
|
1558 | $ hg add | |
1559 | adding f5 |
|
1559 | adding f5 | |
1560 | $ hg st -S |
|
1560 | $ hg st -S | |
1561 | A f5 |
|
1561 | A f5 | |
1562 | ? s/f6 |
|
1562 | ? s/f6 | |
1563 | ? s/f7 |
|
1563 | ? s/f7 | |
1564 | $ hg ci -R s -Am2 |
|
1564 | $ hg ci -R s -Am2 | |
1565 | adding f6 |
|
1565 | adding f6 | |
1566 | adding f7 |
|
1566 | adding f7 | |
1567 | $ hg ci -m3 |
|
1567 | $ hg ci -m3 | |
1568 | Adding without a path or pattern with -S also adds files in subrepos |
|
1568 | Adding without a path or pattern with -S also adds files in subrepos | |
1569 | $ echo c8 > f8 |
|
1569 | $ echo c8 > f8 | |
1570 | $ echo c9 > s/f9 |
|
1570 | $ echo c9 > s/f9 | |
1571 | $ echo c10 > s/f10 |
|
1571 | $ echo c10 > s/f10 | |
1572 | $ hg st -S |
|
1572 | $ hg st -S | |
1573 | ? f8 |
|
1573 | ? f8 | |
1574 | ? s/f10 |
|
1574 | ? s/f10 | |
1575 | ? s/f9 |
|
1575 | ? s/f9 | |
1576 | $ hg add -S |
|
1576 | $ hg add -S | |
1577 | adding f8 |
|
1577 | adding f8 | |
1578 | adding s/f10 |
|
1578 | adding s/f10 | |
1579 | adding s/f9 |
|
1579 | adding s/f9 | |
1580 | $ hg st -S |
|
1580 | $ hg st -S | |
1581 | A f8 |
|
1581 | A f8 | |
1582 | A s/f10 |
|
1582 | A s/f10 | |
1583 | A s/f9 |
|
1583 | A s/f9 | |
1584 | $ hg ci -R s -m3 |
|
1584 | $ hg ci -R s -m3 | |
1585 | $ hg ci -m4 |
|
1585 | $ hg ci -m4 | |
1586 | Adding with a pattern silently ignores subrepos |
|
1586 | Adding with a pattern silently ignores subrepos | |
1587 | $ echo c11 > fm11 |
|
1587 | $ echo c11 > fm11 | |
1588 | $ echo c12 > fn12 |
|
1588 | $ echo c12 > fn12 | |
1589 | $ echo c13 > s/fm13 |
|
1589 | $ echo c13 > s/fm13 | |
1590 | $ echo c14 > s/fn14 |
|
1590 | $ echo c14 > s/fn14 | |
1591 | $ hg st -S |
|
1591 | $ hg st -S | |
1592 | ? fm11 |
|
1592 | ? fm11 | |
1593 | ? fn12 |
|
1593 | ? fn12 | |
1594 | ? s/fm13 |
|
1594 | ? s/fm13 | |
1595 | ? s/fn14 |
|
1595 | ? s/fn14 | |
1596 | $ hg add 'glob:**fm*' |
|
1596 | $ hg add 'glob:**fm*' | |
1597 | adding fm11 |
|
1597 | adding fm11 | |
1598 | $ hg st -S |
|
1598 | $ hg st -S | |
1599 | A fm11 |
|
1599 | A fm11 | |
1600 | ? fn12 |
|
1600 | ? fn12 | |
1601 | ? s/fm13 |
|
1601 | ? s/fm13 | |
1602 | ? s/fn14 |
|
1602 | ? s/fn14 | |
1603 | $ hg ci -R s -Am4 |
|
1603 | $ hg ci -R s -Am4 | |
1604 | adding fm13 |
|
1604 | adding fm13 | |
1605 | adding fn14 |
|
1605 | adding fn14 | |
1606 | $ hg ci -Am5 |
|
1606 | $ hg ci -Am5 | |
1607 | adding fn12 |
|
1607 | adding fn12 | |
1608 | Adding with a pattern with -S also adds matches in subrepos |
|
1608 | Adding with a pattern with -S also adds matches in subrepos | |
1609 | $ echo c15 > fm15 |
|
1609 | $ echo c15 > fm15 | |
1610 | $ echo c16 > fn16 |
|
1610 | $ echo c16 > fn16 | |
1611 | $ echo c17 > s/fm17 |
|
1611 | $ echo c17 > s/fm17 | |
1612 | $ echo c18 > s/fn18 |
|
1612 | $ echo c18 > s/fn18 | |
1613 | $ hg st -S |
|
1613 | $ hg st -S | |
1614 | ? fm15 |
|
1614 | ? fm15 | |
1615 | ? fn16 |
|
1615 | ? fn16 | |
1616 | ? s/fm17 |
|
1616 | ? s/fm17 | |
1617 | ? s/fn18 |
|
1617 | ? s/fn18 | |
1618 | $ hg add -S 'glob:**fm*' |
|
1618 | $ hg add -S 'glob:**fm*' | |
1619 | adding fm15 |
|
1619 | adding fm15 | |
1620 | adding s/fm17 |
|
1620 | adding s/fm17 | |
1621 | $ hg st -S |
|
1621 | $ hg st -S | |
1622 | A fm15 |
|
1622 | A fm15 | |
1623 | A s/fm17 |
|
1623 | A s/fm17 | |
1624 | ? fn16 |
|
1624 | ? fn16 | |
1625 | ? s/fn18 |
|
1625 | ? s/fn18 | |
1626 | $ hg ci -R s -Am5 |
|
1626 | $ hg ci -R s -Am5 | |
1627 | adding fn18 |
|
1627 | adding fn18 | |
1628 | $ hg ci -Am6 |
|
1628 | $ hg ci -Am6 | |
1629 | adding fn16 |
|
1629 | adding fn16 | |
1630 |
|
1630 | |||
1631 | Test behavior of forget for explicit path in subrepo: |
|
1631 | Test behavior of forget for explicit path in subrepo: | |
1632 | Forgetting an explicit path in a subrepo untracks the file |
|
1632 | Forgetting an explicit path in a subrepo untracks the file | |
1633 | $ echo c19 > s/f19 |
|
1633 | $ echo c19 > s/f19 | |
1634 | $ hg add s/f19 |
|
1634 | $ hg add s/f19 | |
1635 | $ hg st -S |
|
1635 | $ hg st -S | |
1636 | A s/f19 |
|
1636 | A s/f19 | |
1637 | $ hg forget s/f19 |
|
1637 | $ hg forget s/f19 | |
1638 | $ hg st -S |
|
1638 | $ hg st -S | |
1639 | ? s/f19 |
|
1639 | ? s/f19 | |
1640 | $ rm s/f19 |
|
1640 | $ rm s/f19 | |
1641 | $ cd .. |
|
1641 | $ cd .. | |
1642 |
|
1642 | |||
1643 | Courtesy phases synchronisation to publishing server does not block the push |
|
1643 | Courtesy phases synchronisation to publishing server does not block the push | |
1644 | (issue3781) |
|
1644 | (issue3781) | |
1645 |
|
1645 | |||
1646 | $ cp -R main issue3781 |
|
1646 | $ cp -R main issue3781 | |
1647 | $ cp -R main issue3781-dest |
|
1647 | $ cp -R main issue3781-dest | |
1648 | $ cd issue3781-dest/s |
|
1648 | $ cd issue3781-dest/s | |
1649 | $ hg phase tip # show we have draft changeset |
|
1649 | $ hg phase tip # show we have draft changeset | |
1650 | 5: draft |
|
1650 | 5: draft | |
1651 | $ chmod a-w .hg/store/phaseroots # prevent phase push |
|
1651 | $ chmod a-w .hg/store/phaseroots # prevent phase push | |
1652 | $ cd ../../issue3781 |
|
1652 | $ cd ../../issue3781 | |
1653 | $ cat >> .hg/hgrc << EOF |
|
1653 | $ cat >> .hg/hgrc << EOF | |
1654 | > [paths] |
|
1654 | > [paths] | |
1655 | > default=../issue3781-dest/ |
|
1655 | > default=../issue3781-dest/ | |
1656 | > EOF |
|
1656 | > EOF | |
1657 | $ hg push --config devel.legacy.exchange=bundle1 |
|
1657 | $ hg push --config devel.legacy.exchange=bundle1 | |
1658 | pushing to $TESTTMP/issue3781-dest |
|
1658 | pushing to $TESTTMP/issue3781-dest | |
1659 | pushing subrepo s to $TESTTMP/issue3781-dest/s |
|
1659 | pushing subrepo s to $TESTTMP/issue3781-dest/s | |
1660 | searching for changes |
|
1660 | searching for changes | |
1661 | no changes found |
|
1661 | no changes found | |
1662 | searching for changes |
|
1662 | searching for changes | |
1663 | no changes found |
|
1663 | no changes found | |
1664 | [1] |
|
1664 | [1] | |
1665 | # clean the push cache |
|
1665 | # clean the push cache | |
1666 | $ rm s/.hg/cache/storehash/* |
|
1666 | $ rm s/.hg/cache/storehash/* | |
1667 | $ hg push # bundle2+ |
|
1667 | $ hg push # bundle2+ | |
1668 | pushing to $TESTTMP/issue3781-dest |
|
1668 | pushing to $TESTTMP/issue3781-dest | |
1669 | pushing subrepo s to $TESTTMP/issue3781-dest/s |
|
1669 | pushing subrepo s to $TESTTMP/issue3781-dest/s | |
1670 | searching for changes |
|
1670 | searching for changes | |
1671 | no changes found |
|
1671 | no changes found | |
1672 | searching for changes |
|
1672 | searching for changes | |
1673 | no changes found |
|
1673 | no changes found | |
1674 | [1] |
|
1674 | [1] | |
1675 | $ cd .. |
|
1675 | $ cd .. | |
1676 |
|
1676 | |||
1677 | Test phase choice for newly created commit with "phases.subrepochecks" |
|
1677 | Test phase choice for newly created commit with "phases.subrepochecks" | |
1678 | configuration |
|
1678 | configuration | |
1679 |
|
1679 | |||
1680 | $ cd t |
|
1680 | $ cd t | |
1681 | $ hg update -q -r 12 |
|
1681 | $ hg update -q -r 12 | |
1682 |
|
1682 | |||
1683 | $ cat >> s/ss/.hg/hgrc <<EOF |
|
1683 | $ cat >> s/ss/.hg/hgrc <<EOF | |
1684 | > [phases] |
|
1684 | > [phases] | |
1685 | > new-commit = secret |
|
1685 | > new-commit = secret | |
1686 | > EOF |
|
1686 | > EOF | |
1687 | $ cat >> s/.hg/hgrc <<EOF |
|
1687 | $ cat >> s/.hg/hgrc <<EOF | |
1688 | > [phases] |
|
1688 | > [phases] | |
1689 | > new-commit = draft |
|
1689 | > new-commit = draft | |
1690 | > EOF |
|
1690 | > EOF | |
1691 | $ echo phasecheck1 >> s/ss/a |
|
1691 | $ echo phasecheck1 >> s/ss/a | |
1692 | $ hg -R s commit -S --config phases.checksubrepos=abort -m phasecheck1 |
|
1692 | $ hg -R s commit -S --config phases.checksubrepos=abort -m phasecheck1 | |
1693 | committing subrepository ss |
|
1693 | committing subrepository ss | |
1694 | transaction abort! |
|
1694 | transaction abort! | |
1695 | rollback completed |
|
1695 | rollback completed | |
1696 | abort: can't commit in draft phase conflicting secret from subrepository ss |
|
1696 | abort: can't commit in draft phase conflicting secret from subrepository ss | |
1697 | [255] |
|
1697 | [255] | |
1698 | $ echo phasecheck2 >> s/ss/a |
|
1698 | $ echo phasecheck2 >> s/ss/a | |
1699 | $ hg -R s commit -S --config phases.checksubrepos=ignore -m phasecheck2 |
|
1699 | $ hg -R s commit -S --config phases.checksubrepos=ignore -m phasecheck2 | |
1700 | committing subrepository ss |
|
1700 | committing subrepository ss | |
1701 | $ hg -R s/ss phase tip |
|
1701 | $ hg -R s/ss phase tip | |
1702 | 3: secret |
|
1702 | 3: secret | |
1703 | $ hg -R s phase tip |
|
1703 | $ hg -R s phase tip | |
1704 | 6: draft |
|
1704 | 6: draft | |
1705 | $ echo phasecheck3 >> s/ss/a |
|
1705 | $ echo phasecheck3 >> s/ss/a | |
1706 | $ hg -R s commit -S -m phasecheck3 |
|
1706 | $ hg -R s commit -S -m phasecheck3 | |
1707 | committing subrepository ss |
|
1707 | committing subrepository ss | |
1708 | warning: changes are committed in secret phase from subrepository ss |
|
1708 | warning: changes are committed in secret phase from subrepository ss | |
1709 | $ hg -R s/ss phase tip |
|
1709 | $ hg -R s/ss phase tip | |
1710 | 4: secret |
|
1710 | 4: secret | |
1711 | $ hg -R s phase tip |
|
1711 | $ hg -R s phase tip | |
1712 | 7: secret |
|
1712 | 7: secret | |
1713 |
|
1713 | |||
1714 | $ cat >> t/.hg/hgrc <<EOF |
|
1714 | $ cat >> t/.hg/hgrc <<EOF | |
1715 | > [phases] |
|
1715 | > [phases] | |
1716 | > new-commit = draft |
|
1716 | > new-commit = draft | |
1717 | > EOF |
|
1717 | > EOF | |
1718 | $ cat >> .hg/hgrc <<EOF |
|
1718 | $ cat >> .hg/hgrc <<EOF | |
1719 | > [phases] |
|
1719 | > [phases] | |
1720 | > new-commit = public |
|
1720 | > new-commit = public | |
1721 | > EOF |
|
1721 | > EOF | |
1722 | $ echo phasecheck4 >> s/ss/a |
|
1722 | $ echo phasecheck4 >> s/ss/a | |
1723 | $ echo phasecheck4 >> t/t |
|
1723 | $ echo phasecheck4 >> t/t | |
1724 | $ hg commit -S -m phasecheck4 |
|
1724 | $ hg commit -S -m phasecheck4 | |
1725 | committing subrepository s |
|
1725 | committing subrepository s | |
1726 | committing subrepository s/ss |
|
1726 | committing subrepository s/ss | |
1727 | warning: changes are committed in secret phase from subrepository ss |
|
1727 | warning: changes are committed in secret phase from subrepository ss | |
1728 | committing subrepository t |
|
1728 | committing subrepository t | |
1729 | warning: changes are committed in secret phase from subrepository s |
|
1729 | warning: changes are committed in secret phase from subrepository s | |
1730 | created new head |
|
1730 | created new head | |
1731 | $ hg -R s/ss phase tip |
|
1731 | $ hg -R s/ss phase tip | |
1732 | 5: secret |
|
1732 | 5: secret | |
1733 | $ hg -R s phase tip |
|
1733 | $ hg -R s phase tip | |
1734 | 8: secret |
|
1734 | 8: secret | |
1735 | $ hg -R t phase tip |
|
1735 | $ hg -R t phase tip | |
1736 | 6: draft |
|
1736 | 6: draft | |
1737 | $ hg phase tip |
|
1737 | $ hg phase tip | |
1738 | 15: secret |
|
1738 | 15: secret | |
1739 |
|
1739 | |||
1740 | $ cd .. |
|
1740 | $ cd .. | |
1741 |
|
1741 | |||
1742 |
|
1742 | |||
1743 | Test that commit --secret works on both repo and subrepo (issue4182) |
|
1743 | Test that commit --secret works on both repo and subrepo (issue4182) | |
1744 |
|
1744 | |||
1745 | $ cd main |
|
1745 | $ cd main | |
1746 | $ echo secret >> b |
|
1746 | $ echo secret >> b | |
1747 | $ echo secret >> s/b |
|
1747 | $ echo secret >> s/b | |
1748 | $ hg commit --secret --subrepo -m "secret" |
|
1748 | $ hg commit --secret --subrepo -m "secret" | |
1749 | committing subrepository s |
|
1749 | committing subrepository s | |
1750 | $ hg phase -r . |
|
1750 | $ hg phase -r . | |
1751 | 6: secret |
|
1751 | 6: secret | |
1752 | $ cd s |
|
1752 | $ cd s | |
1753 | $ hg phase -r . |
|
1753 | $ hg phase -r . | |
1754 | 6: secret |
|
1754 | 6: secret | |
1755 | $ cd ../../ |
|
1755 | $ cd ../../ | |
1756 |
|
1756 | |||
1757 | Test "subrepos" template keyword |
|
1757 | Test "subrepos" template keyword | |
1758 |
|
1758 | |||
1759 | $ cd t |
|
1759 | $ cd t | |
1760 | $ hg update -q 15 |
|
1760 | $ hg update -q 15 | |
1761 | $ cat > .hgsub <<EOF |
|
1761 | $ cat > .hgsub <<EOF | |
1762 | > s = s |
|
1762 | > s = s | |
1763 | > EOF |
|
1763 | > EOF | |
1764 | $ hg commit -m "16" |
|
1764 | $ hg commit -m "16" | |
1765 | warning: changes are committed in secret phase from subrepository s |
|
1765 | warning: changes are committed in secret phase from subrepository s | |
1766 |
|
1766 | |||
1767 | (addition of ".hgsub" itself) |
|
1767 | (addition of ".hgsub" itself) | |
1768 |
|
1768 | |||
1769 | $ hg diff --nodates -c 1 .hgsubstate |
|
1769 | $ hg diff --nodates -c 1 .hgsubstate | |
1770 | diff -r f7b1eb17ad24 -r 7cf8cfea66e4 .hgsubstate |
|
1770 | diff -r f7b1eb17ad24 -r 7cf8cfea66e4 .hgsubstate | |
1771 | --- /dev/null |
|
1771 | --- /dev/null | |
1772 | +++ b/.hgsubstate |
|
1772 | +++ b/.hgsubstate | |
1773 | @@ -0,0 +1,1 @@ |
|
1773 | @@ -0,0 +1,1 @@ | |
1774 | +e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
1774 | +e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
1775 | $ hg log -r 1 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" |
|
1775 | $ hg log -r 1 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" | |
1776 | f7b1eb17ad24 000000000000 |
|
1776 | f7b1eb17ad24 000000000000 | |
1777 | s |
|
1777 | s | |
1778 |
|
1778 | |||
1779 | (modification of existing entry) |
|
1779 | (modification of existing entry) | |
1780 |
|
1780 | |||
1781 | $ hg diff --nodates -c 2 .hgsubstate |
|
1781 | $ hg diff --nodates -c 2 .hgsubstate | |
1782 | diff -r 7cf8cfea66e4 -r df30734270ae .hgsubstate |
|
1782 | diff -r 7cf8cfea66e4 -r df30734270ae .hgsubstate | |
1783 | --- a/.hgsubstate |
|
1783 | --- a/.hgsubstate | |
1784 | +++ b/.hgsubstate |
|
1784 | +++ b/.hgsubstate | |
1785 | @@ -1,1 +1,1 @@ |
|
1785 | @@ -1,1 +1,1 @@ | |
1786 | -e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
1786 | -e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
1787 | +dc73e2e6d2675eb2e41e33c205f4bdab4ea5111d s |
|
1787 | +dc73e2e6d2675eb2e41e33c205f4bdab4ea5111d s | |
1788 | $ hg log -r 2 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" |
|
1788 | $ hg log -r 2 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" | |
1789 | 7cf8cfea66e4 000000000000 |
|
1789 | 7cf8cfea66e4 000000000000 | |
1790 | s |
|
1790 | s | |
1791 |
|
1791 | |||
1792 | (addition of entry) |
|
1792 | (addition of entry) | |
1793 |
|
1793 | |||
1794 | $ hg diff --nodates -c 5 .hgsubstate |
|
1794 | $ hg diff --nodates -c 5 .hgsubstate | |
1795 | diff -r 7cf8cfea66e4 -r 1f14a2e2d3ec .hgsubstate |
|
1795 | diff -r 7cf8cfea66e4 -r 1f14a2e2d3ec .hgsubstate | |
1796 | --- a/.hgsubstate |
|
1796 | --- a/.hgsubstate | |
1797 | +++ b/.hgsubstate |
|
1797 | +++ b/.hgsubstate | |
1798 | @@ -1,1 +1,2 @@ |
|
1798 | @@ -1,1 +1,2 @@ | |
1799 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
1799 | e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
1800 | +60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t |
|
1800 | +60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t | |
1801 | $ hg log -r 5 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" |
|
1801 | $ hg log -r 5 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" | |
1802 | 7cf8cfea66e4 000000000000 |
|
1802 | 7cf8cfea66e4 000000000000 | |
1803 | t |
|
1803 | t | |
1804 |
|
1804 | |||
1805 | (removal of existing entry) |
|
1805 | (removal of existing entry) | |
1806 |
|
1806 | |||
1807 | $ hg diff --nodates -c 16 .hgsubstate |
|
1807 | $ hg diff --nodates -c 16 .hgsubstate | |
1808 | diff -r 8bec38d2bd0b -r f2f70bc3d3c9 .hgsubstate |
|
1808 | diff -r 8bec38d2bd0b -r f2f70bc3d3c9 .hgsubstate | |
1809 | --- a/.hgsubstate |
|
1809 | --- a/.hgsubstate | |
1810 | +++ b/.hgsubstate |
|
1810 | +++ b/.hgsubstate | |
1811 | @@ -1,2 +1,1 @@ |
|
1811 | @@ -1,2 +1,1 @@ | |
1812 | 0731af8ca9423976d3743119d0865097c07bdc1b s |
|
1812 | 0731af8ca9423976d3743119d0865097c07bdc1b s | |
1813 | -e202dc79b04c88a636ea8913d9182a1346d9b3dc t |
|
1813 | -e202dc79b04c88a636ea8913d9182a1346d9b3dc t | |
1814 | $ hg log -r 16 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" |
|
1814 | $ hg log -r 16 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" | |
1815 | 8bec38d2bd0b 000000000000 |
|
1815 | 8bec38d2bd0b 000000000000 | |
1816 | t |
|
1816 | t | |
1817 |
|
1817 | |||
1818 | (merging) |
|
1818 | (merging) | |
1819 |
|
1819 | |||
1820 | $ hg diff --nodates -c 9 .hgsubstate |
|
1820 | $ hg diff --nodates -c 9 .hgsubstate | |
1821 | diff -r f6affe3fbfaa -r f0d2028bf86d .hgsubstate |
|
1821 | diff -r f6affe3fbfaa -r f0d2028bf86d .hgsubstate | |
1822 | --- a/.hgsubstate |
|
1822 | --- a/.hgsubstate | |
1823 | +++ b/.hgsubstate |
|
1823 | +++ b/.hgsubstate | |
1824 | @@ -1,1 +1,2 @@ |
|
1824 | @@ -1,1 +1,2 @@ | |
1825 | fc627a69481fcbe5f1135069e8a3881c023e4cf5 s |
|
1825 | fc627a69481fcbe5f1135069e8a3881c023e4cf5 s | |
1826 | +60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t |
|
1826 | +60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t | |
1827 | $ hg log -r 9 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" |
|
1827 | $ hg log -r 9 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" | |
1828 | f6affe3fbfaa 1f14a2e2d3ec |
|
1828 | f6affe3fbfaa 1f14a2e2d3ec | |
1829 | t |
|
1829 | t | |
1830 |
|
1830 | |||
1831 | (removal of ".hgsub" itself) |
|
1831 | (removal of ".hgsub" itself) | |
1832 |
|
1832 | |||
1833 | $ hg diff --nodates -c 8 .hgsubstate |
|
1833 | $ hg diff --nodates -c 8 .hgsubstate | |
1834 | diff -r f94576341bcf -r 96615c1dad2d .hgsubstate |
|
1834 | diff -r f94576341bcf -r 96615c1dad2d .hgsubstate | |
1835 | --- a/.hgsubstate |
|
1835 | --- a/.hgsubstate | |
1836 | +++ /dev/null |
|
1836 | +++ /dev/null | |
1837 | @@ -1,2 +0,0 @@ |
|
1837 | @@ -1,2 +0,0 @@ | |
1838 | -e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s |
|
1838 | -e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s | |
1839 | -7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4 t |
|
1839 | -7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4 t | |
1840 | $ hg log -r 8 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" |
|
1840 | $ hg log -r 8 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}" | |
1841 | f94576341bcf 000000000000 |
|
1841 | f94576341bcf 000000000000 | |
1842 |
|
1842 | |||
1843 | Test that '[paths]' is configured correctly at subrepo creation |
|
1843 | Test that '[paths]' is configured correctly at subrepo creation | |
1844 |
|
1844 | |||
1845 | $ cd $TESTTMP/tc |
|
1845 | $ cd $TESTTMP/tc | |
1846 | $ cat > .hgsub <<EOF |
|
1846 | $ cat > .hgsub <<EOF | |
1847 | > # to clear bogus subrepo path 'bogus=[boguspath' |
|
1847 | > # to clear bogus subrepo path 'bogus=[boguspath' | |
1848 | > s = s |
|
1848 | > s = s | |
1849 | > t = t |
|
1849 | > t = t | |
1850 | > EOF |
|
1850 | > EOF | |
1851 | $ hg update -q --clean null |
|
1851 | $ hg update -q --clean null | |
1852 | $ rm -rf s t |
|
1852 | $ rm -rf s t | |
1853 | $ cat >> .hg/hgrc <<EOF |
|
1853 | $ cat >> .hg/hgrc <<EOF | |
1854 | > [paths] |
|
1854 | > [paths] | |
1855 | > default-push = /foo/bar |
|
1855 | > default-push = /foo/bar | |
1856 | > EOF |
|
1856 | > EOF | |
1857 | $ hg update -q |
|
1857 | $ hg update -q | |
1858 | $ cat s/.hg/hgrc |
|
1858 | $ cat s/.hg/hgrc | |
1859 | [paths] |
|
1859 | [paths] | |
1860 | default = $TESTTMP/t/s |
|
1860 | default = $TESTTMP/t/s | |
1861 | default-push = /foo/bar/s |
|
1861 | default-push = /foo/bar/s | |
1862 | $ cat s/ss/.hg/hgrc |
|
1862 | $ cat s/ss/.hg/hgrc | |
1863 | [paths] |
|
1863 | [paths] | |
1864 | default = $TESTTMP/t/s/ss |
|
1864 | default = $TESTTMP/t/s/ss | |
1865 | default-push = /foo/bar/s/ss |
|
1865 | default-push = /foo/bar/s/ss | |
1866 | $ cat t/.hg/hgrc |
|
1866 | $ cat t/.hg/hgrc | |
1867 | [paths] |
|
1867 | [paths] | |
1868 | default = $TESTTMP/t/t |
|
1868 | default = $TESTTMP/t/t | |
1869 | default-push = /foo/bar/t |
|
1869 | default-push = /foo/bar/t | |
1870 |
|
1870 | |||
1871 | $ cd $TESTTMP/t |
|
1871 | $ cd $TESTTMP/t | |
1872 | $ hg up -qC 0 |
|
1872 | $ hg up -qC 0 | |
1873 | $ echo 'bar' > bar.txt |
|
1873 | $ echo 'bar' > bar.txt | |
1874 | $ hg ci -Am 'branch before subrepo add' |
|
1874 | $ hg ci -Am 'branch before subrepo add' | |
1875 | adding bar.txt |
|
1875 | adding bar.txt | |
1876 | created new head |
|
1876 | created new head | |
1877 | $ hg merge -r "first(subrepo('s'))" |
|
1877 | $ hg merge -r "first(subrepo('s'))" | |
1878 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1878 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1879 | (branch merge, don't forget to commit) |
|
1879 | (branch merge, don't forget to commit) | |
1880 | $ hg status -S -X '.hgsub*' |
|
1880 | $ hg status -S -X '.hgsub*' | |
1881 | A s/a |
|
1881 | A s/a | |
1882 | ? s/b |
|
1882 | ? s/b | |
1883 | ? s/c |
|
1883 | ? s/c | |
1884 | ? s/f1 |
|
1884 | ? s/f1 | |
1885 | $ hg status -S --rev 'p2()' |
|
1885 | $ hg status -S --rev 'p2()' | |
1886 | A bar.txt |
|
1886 | A bar.txt | |
1887 | ? s/b |
|
1887 | ? s/b | |
1888 | ? s/c |
|
1888 | ? s/c | |
1889 | ? s/f1 |
|
1889 | ? s/f1 | |
1890 | $ hg diff -S -X '.hgsub*' --nodates |
|
1890 | $ hg diff -S -X '.hgsub*' --nodates | |
1891 | diff -r 000000000000 s/a |
|
1891 | diff -r 000000000000 s/a | |
1892 | --- /dev/null |
|
1892 | --- /dev/null | |
1893 | +++ b/s/a |
|
1893 | +++ b/s/a | |
1894 | @@ -0,0 +1,1 @@ |
|
1894 | @@ -0,0 +1,1 @@ | |
1895 | +a |
|
1895 | +a | |
1896 | $ hg diff -S --rev 'p2()' --nodates |
|
1896 | $ hg diff -S --rev 'p2()' --nodates | |
1897 | diff -r 7cf8cfea66e4 bar.txt |
|
1897 | diff -r 7cf8cfea66e4 bar.txt | |
1898 | --- /dev/null |
|
1898 | --- /dev/null | |
1899 | +++ b/bar.txt |
|
1899 | +++ b/bar.txt | |
1900 | @@ -0,0 +1,1 @@ |
|
1900 | @@ -0,0 +1,1 @@ | |
1901 | +bar |
|
1901 | +bar | |
1902 |
|
1902 | |||
1903 | $ hg diff -X '.hgsub*' --nodates s |
|
1903 | $ hg diff -X '.hgsub*' --nodates s | |
1904 | diff -r 000000000000 s/a |
|
1904 | diff -r 000000000000 s/a | |
1905 | --- /dev/null |
|
1905 | --- /dev/null | |
1906 | +++ b/s/a |
|
1906 | +++ b/s/a | |
1907 | @@ -0,0 +1,1 @@ |
|
1907 | @@ -0,0 +1,1 @@ | |
1908 | +a |
|
1908 | +a | |
1909 | $ hg diff -X '.hgsub*' --nodates s/a |
|
1909 | $ hg diff -X '.hgsub*' --nodates s/a | |
1910 | diff -r 000000000000 s/a |
|
1910 | diff -r 000000000000 s/a | |
1911 | --- /dev/null |
|
1911 | --- /dev/null | |
1912 | +++ b/s/a |
|
1912 | +++ b/s/a | |
1913 | @@ -0,0 +1,1 @@ |
|
1913 | @@ -0,0 +1,1 @@ | |
1914 | +a |
|
1914 | +a | |
1915 |
|
1915 | |||
1916 | $ cd .. |
|
1916 | $ cd .. | |
1917 |
|
1917 | |||
1918 | test for ssh exploit 2017-07-25 |
|
1918 | test for ssh exploit 2017-07-25 | |
1919 |
|
1919 | |||
1920 | $ cat >> $HGRCPATH << EOF |
|
1920 | $ cat >> $HGRCPATH << EOF | |
1921 | > [ui] |
|
1921 | > [ui] | |
1922 | > ssh = sh -c "read l; read l; read l" |
|
1922 | > ssh = sh -c "read l; read l; read l" | |
1923 | > EOF |
|
1923 | > EOF | |
1924 |
|
1924 | |||
1925 | $ hg init malicious-proxycommand |
|
1925 | $ hg init malicious-proxycommand | |
1926 | $ cd malicious-proxycommand |
|
1926 | $ cd malicious-proxycommand | |
1927 | $ echo 's = [hg]ssh://-oProxyCommand=touch${IFS}owned/path' > .hgsub |
|
1927 | $ echo 's = [hg]ssh://-oProxyCommand=touch${IFS}owned/path' > .hgsub | |
1928 | $ hg init s |
|
1928 | $ hg init s | |
1929 | $ cd s |
|
1929 | $ cd s | |
1930 | $ echo init > init |
|
1930 | $ echo init > init | |
1931 | $ hg add |
|
1931 | $ hg add | |
1932 | adding init |
|
1932 | adding init | |
1933 | $ hg commit -m init |
|
1933 | $ hg commit -m init | |
1934 | $ cd .. |
|
1934 | $ cd .. | |
1935 | $ hg add .hgsub |
|
1935 | $ hg add .hgsub | |
1936 | $ hg ci -m 'add subrepo' |
|
1936 | $ hg ci -m 'add subrepo' | |
1937 | $ cd .. |
|
1937 | $ cd .. | |
1938 | $ hg clone malicious-proxycommand malicious-proxycommand-clone |
|
1938 | $ hg clone malicious-proxycommand malicious-proxycommand-clone | |
1939 | updating to branch default |
|
1939 | updating to branch default | |
1940 | cloning subrepo s from ssh://-oProxyCommand%3Dtouch%24%7BIFS%7Downed/path |
|
1940 | cloning subrepo s from ssh://-oProxyCommand%3Dtouch%24%7BIFS%7Downed/path | |
1941 | abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' (in subrepository "s") |
|
1941 | abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' (in subrepository "s") | |
1942 | [255] |
|
1942 | [255] | |
1943 |
|
1943 | |||
1944 | also check that a percent encoded '-' (%2D) doesn't work |
|
1944 | also check that a percent encoded '-' (%2D) doesn't work | |
1945 |
|
1945 | |||
1946 | $ cd malicious-proxycommand |
|
1946 | $ cd malicious-proxycommand | |
1947 | $ echo 's = [hg]ssh://%2DoProxyCommand=touch${IFS}owned/path' > .hgsub |
|
1947 | $ echo 's = [hg]ssh://%2DoProxyCommand=touch${IFS}owned/path' > .hgsub | |
1948 | $ hg ci -m 'change url to percent encoded' |
|
1948 | $ hg ci -m 'change url to percent encoded' | |
1949 | $ cd .. |
|
1949 | $ cd .. | |
1950 | $ rm -r malicious-proxycommand-clone |
|
1950 | $ rm -r malicious-proxycommand-clone | |
1951 | $ hg clone malicious-proxycommand malicious-proxycommand-clone |
|
1951 | $ hg clone malicious-proxycommand malicious-proxycommand-clone | |
1952 | updating to branch default |
|
1952 | updating to branch default | |
1953 | cloning subrepo s from ssh://-oProxyCommand%3Dtouch%24%7BIFS%7Downed/path |
|
1953 | cloning subrepo s from ssh://-oProxyCommand%3Dtouch%24%7BIFS%7Downed/path | |
1954 | abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' (in subrepository "s") |
|
1954 | abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' (in subrepository "s") | |
1955 | [255] |
|
1955 | [255] | |
1956 |
|
1956 | |||
1957 | also check for a pipe |
|
1957 | also check for a pipe | |
1958 |
|
1958 | |||
1959 | $ cd malicious-proxycommand |
|
1959 | $ cd malicious-proxycommand | |
1960 | $ echo 's = [hg]ssh://fakehost|touch${IFS}owned/path' > .hgsub |
|
1960 | $ echo 's = [hg]ssh://fakehost|touch${IFS}owned/path' > .hgsub | |
1961 | $ hg ci -m 'change url to pipe' |
|
1961 | $ hg ci -m 'change url to pipe' | |
1962 | $ cd .. |
|
1962 | $ cd .. | |
1963 | $ rm -r malicious-proxycommand-clone |
|
1963 | $ rm -r malicious-proxycommand-clone | |
1964 | $ hg clone malicious-proxycommand malicious-proxycommand-clone |
|
1964 | $ hg clone malicious-proxycommand malicious-proxycommand-clone | |
1965 | updating to branch default |
|
1965 | updating to branch default | |
1966 | cloning subrepo s from ssh://fakehost%7Ctouch%24%7BIFS%7Downed/path |
|
1966 | cloning subrepo s from ssh://fakehost%7Ctouch%24%7BIFS%7Downed/path | |
1967 | abort: no suitable response from remote hg |
|
1967 | abort: no suitable response from remote hg | |
1968 | [255] |
|
1968 | [255] | |
1969 | $ [ ! -f owned ] || echo 'you got owned' |
|
1969 | $ [ ! -f owned ] || echo 'you got owned' | |
1970 |
|
1970 | |||
1971 | also check that a percent encoded '|' (%7C) doesn't work |
|
1971 | also check that a percent encoded '|' (%7C) doesn't work | |
1972 |
|
1972 | |||
1973 | $ cd malicious-proxycommand |
|
1973 | $ cd malicious-proxycommand | |
1974 | $ echo 's = [hg]ssh://fakehost%7Ctouch%20owned/path' > .hgsub |
|
1974 | $ echo 's = [hg]ssh://fakehost%7Ctouch%20owned/path' > .hgsub | |
1975 | $ hg ci -m 'change url to percent encoded pipe' |
|
1975 | $ hg ci -m 'change url to percent encoded pipe' | |
1976 | $ cd .. |
|
1976 | $ cd .. | |
1977 | $ rm -r malicious-proxycommand-clone |
|
1977 | $ rm -r malicious-proxycommand-clone | |
1978 | $ hg clone malicious-proxycommand malicious-proxycommand-clone |
|
1978 | $ hg clone malicious-proxycommand malicious-proxycommand-clone | |
1979 | updating to branch default |
|
1979 | updating to branch default | |
1980 | cloning subrepo s from ssh://fakehost%7Ctouch%20owned/path |
|
1980 | cloning subrepo s from ssh://fakehost%7Ctouch%20owned/path | |
1981 | abort: no suitable response from remote hg |
|
1981 | abort: no suitable response from remote hg | |
1982 | [255] |
|
1982 | [255] | |
1983 | $ [ ! -f owned ] || echo 'you got owned' |
|
1983 | $ [ ! -f owned ] || echo 'you got owned' | |
1984 |
|
1984 | |||
1985 | and bad usernames: |
|
1985 | and bad usernames: | |
1986 | $ cd malicious-proxycommand |
|
1986 | $ cd malicious-proxycommand | |
1987 | $ echo 's = [hg]ssh://-oProxyCommand=touch owned@example.com/path' > .hgsub |
|
1987 | $ echo 's = [hg]ssh://-oProxyCommand=touch owned@example.com/path' > .hgsub | |
1988 | $ hg ci -m 'owned username' |
|
1988 | $ hg ci -m 'owned username' | |
1989 | $ cd .. |
|
1989 | $ cd .. | |
1990 | $ rm -r malicious-proxycommand-clone |
|
1990 | $ rm -r malicious-proxycommand-clone | |
1991 | $ hg clone malicious-proxycommand malicious-proxycommand-clone |
|
1991 | $ hg clone malicious-proxycommand malicious-proxycommand-clone | |
1992 | updating to branch default |
|
1992 | updating to branch default | |
1993 | cloning subrepo s from ssh://-oProxyCommand%3Dtouch%20owned@example.com/path |
|
1993 | cloning subrepo s from ssh://-oProxyCommand%3Dtouch%20owned@example.com/path | |
1994 | abort: potentially unsafe url: 'ssh://-oProxyCommand=touch owned@example.com/path' (in subrepository "s") |
|
1994 | abort: potentially unsafe url: 'ssh://-oProxyCommand=touch owned@example.com/path' (in subrepository "s") | |
1995 | [255] |
|
1995 | [255] | |
1996 |
|
1996 | |||
1997 | Test convert subrepositories including merge (issue5526): |
|
1997 | Test convert subrepositories including merge (issue5526): | |
1998 |
|
1998 | |||
1999 | $ hg init tconv |
|
1999 | $ hg init tconv | |
2000 | $ hg convert --config extensions.convert= -q t/s tconv/s |
|
2000 | $ hg convert --config extensions.convert= -q t/s tconv/s | |
2001 | $ hg convert --config extensions.convert= -q t/s/ss tconv/s/ss |
|
2001 | $ hg convert --config extensions.convert= -q t/s/ss tconv/s/ss | |
2002 | $ hg convert --config extensions.convert= -q t/t tconv/t |
|
2002 | $ hg convert --config extensions.convert= -q t/t tconv/t | |
2003 |
|
2003 | |||
2004 | convert shouldn't fail because of pseudo filenode: |
|
2004 | convert shouldn't fail because of pseudo filenode: | |
2005 |
|
2005 | |||
2006 | $ hg convert --config extensions.convert= t tconv |
|
2006 | $ hg convert --config extensions.convert= t tconv | |
2007 | scanning source... |
|
2007 | scanning source... | |
2008 | sorting... |
|
2008 | sorting... | |
2009 | converting... |
|
2009 | converting... | |
2010 | 17 0 |
|
2010 | 17 0 | |
2011 | 16 1 |
|
2011 | 16 1 | |
2012 | 15 2 |
|
2012 | 15 2 | |
2013 | 14 3 |
|
2013 | 14 3 | |
2014 | 13 4 |
|
2014 | 13 4 | |
2015 | 12 5 |
|
2015 | 12 5 | |
2016 | 11 6 |
|
2016 | 11 6 | |
2017 | 10 7 |
|
2017 | 10 7 | |
2018 | 9 8 |
|
2018 | 9 8 | |
2019 | 8 9 |
|
2019 | 8 9 | |
2020 | 7 10 |
|
2020 | 7 10 | |
2021 | 6 11 |
|
2021 | 6 11 | |
2022 | 5 12 |
|
2022 | 5 12 | |
2023 | 4 13 |
|
2023 | 4 13 | |
2024 | 3 rm2 |
|
2024 | 3 rm2 | |
2025 | 2 phasecheck4 |
|
2025 | 2 phasecheck4 | |
2026 | 1 16 |
|
2026 | 1 16 | |
2027 | 0 branch before subrepo add |
|
2027 | 0 branch before subrepo add | |
2028 |
|
2028 | |||
2029 | converted .hgsubstate should point to valid nodes: |
|
2029 | converted .hgsubstate should point to valid nodes: | |
2030 |
|
2030 | |||
2031 | $ hg up -R tconv 9 |
|
2031 | $ hg up -R tconv 9 | |
2032 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
2032 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
2033 | $ cat tconv/.hgsubstate |
|
2033 | $ cat tconv/.hgsubstate | |
2034 | fc627a69481fcbe5f1135069e8a3881c023e4cf5 s |
|
2034 | fc627a69481fcbe5f1135069e8a3881c023e4cf5 s | |
2035 | 60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t |
|
2035 | 60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t |
@@ -1,245 +1,245 b'' | |||||
1 | $ HGMERGE=true; export HGMERGE |
|
1 | $ HGMERGE=true; export HGMERGE | |
2 |
|
2 | |||
3 | $ hg init r1 |
|
3 | $ hg init r1 | |
4 | $ cd r1 |
|
4 | $ cd r1 | |
5 | $ echo a > a |
|
5 | $ echo a > a | |
6 | $ hg addremove |
|
6 | $ hg addremove | |
7 | adding a |
|
7 | adding a | |
8 | $ hg commit -m "1" |
|
8 | $ hg commit -m "1" | |
9 |
|
9 | |||
10 | $ hg clone . ../r2 |
|
10 | $ hg clone . ../r2 | |
11 | updating to branch default |
|
11 | updating to branch default | |
12 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
12 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
13 | $ cd ../r2 |
|
13 | $ cd ../r2 | |
14 | $ hg up |
|
14 | $ hg up | |
15 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
15 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
16 | $ echo abc > a |
|
16 | $ echo abc > a | |
17 | $ hg diff --nodates |
|
17 | $ hg diff --nodates | |
18 | diff -r c19d34741b0a a |
|
18 | diff -r c19d34741b0a a | |
19 | --- a/a |
|
19 | --- a/a | |
20 | +++ b/a |
|
20 | +++ b/a | |
21 | @@ -1,1 +1,1 @@ |
|
21 | @@ -1,1 +1,1 @@ | |
22 | -a |
|
22 | -a | |
23 | +abc |
|
23 | +abc | |
24 |
|
24 | |||
25 | $ cd ../r1 |
|
25 | $ cd ../r1 | |
26 | $ echo b > b |
|
26 | $ echo b > b | |
27 | $ echo a2 > a |
|
27 | $ echo a2 > a | |
28 | $ hg addremove |
|
28 | $ hg addremove | |
29 | adding b |
|
29 | adding b | |
30 | $ hg commit -m "2" |
|
30 | $ hg commit -m "2" | |
31 |
|
31 | |||
32 | $ cd ../r2 |
|
32 | $ cd ../r2 | |
33 | $ hg -q pull ../r1 |
|
33 | $ hg -q pull ../r1 | |
34 | $ hg status |
|
34 | $ hg status | |
35 | M a |
|
35 | M a | |
36 | $ hg parents |
|
36 | $ hg parents | |
37 | changeset: 0:c19d34741b0a |
|
37 | changeset: 0:c19d34741b0a | |
38 | user: test |
|
38 | user: test | |
39 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
39 | date: Thu Jan 01 00:00:00 1970 +0000 | |
40 | summary: 1 |
|
40 | summary: 1 | |
41 |
|
41 | |||
42 | $ hg --debug up |
|
42 | $ hg --debug up | |
43 | resolving manifests |
|
43 | resolving manifests | |
44 | branchmerge: False, force: False, partial: False |
|
44 | branchmerge: False, force: False, partial: False | |
45 | ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb |
|
45 | ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb | |
46 | b: remote created -> g |
|
46 | b: remote created -> g | |
47 | getting b |
|
47 | getting b | |
48 | preserving a for resolve of a |
|
48 | preserving a for resolve of a | |
49 | a: versions differ -> m (premerge) |
|
49 | a: versions differ -> m (premerge) | |
50 | picked tool 'true' for a (binary False symlink False changedelete False) |
|
50 | picked tool 'true' for a (binary False symlink False changedelete False) | |
51 | merging a |
|
51 | merging a | |
52 | my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a |
|
52 | my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a | |
53 | a: versions differ -> m (merge) |
|
53 | a: versions differ -> m (merge) | |
54 | picked tool 'true' for a (binary False symlink False changedelete False) |
|
54 | picked tool 'true' for a (binary False symlink False changedelete False) | |
55 | my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a |
|
55 | my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a | |
56 | launching merge tool: true *$TESTTMP/r2/a* * * (glob) |
|
56 | launching merge tool: true *$TESTTMP/r2/a* * * (glob) | |
57 | merge tool returned: 0 |
|
57 | merge tool returned: 0 | |
58 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
58 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
59 | $ hg parents |
|
59 | $ hg parents | |
60 | changeset: 1:1e71731e6fbb |
|
60 | changeset: 1:1e71731e6fbb | |
61 | tag: tip |
|
61 | tag: tip | |
62 | user: test |
|
62 | user: test | |
63 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
63 | date: Thu Jan 01 00:00:00 1970 +0000 | |
64 | summary: 2 |
|
64 | summary: 2 | |
65 |
|
65 | |||
66 | $ hg --debug up 0 |
|
66 | $ hg --debug up 0 | |
67 | starting 4 threads for background file closing (?) |
|
67 | starting 4 threads for background file closing (?) | |
68 | resolving manifests |
|
68 | resolving manifests | |
69 | branchmerge: False, force: False, partial: False |
|
69 | branchmerge: False, force: False, partial: False | |
70 | ancestor: 1e71731e6fbb, local: 1e71731e6fbb+, remote: c19d34741b0a |
|
70 | ancestor: 1e71731e6fbb, local: 1e71731e6fbb+, remote: c19d34741b0a | |
71 | b: other deleted -> r |
|
71 | b: other deleted -> r | |
72 | removing b |
|
72 | removing b | |
|
73 | starting 4 threads for background file closing (?) | |||
73 | preserving a for resolve of a |
|
74 | preserving a for resolve of a | |
74 | starting 4 threads for background file closing (?) |
|
|||
75 | a: versions differ -> m (premerge) |
|
75 | a: versions differ -> m (premerge) | |
76 | picked tool 'true' for a (binary False symlink False changedelete False) |
|
76 | picked tool 'true' for a (binary False symlink False changedelete False) | |
77 | merging a |
|
77 | merging a | |
78 | my a@1e71731e6fbb+ other a@c19d34741b0a ancestor a@1e71731e6fbb |
|
78 | my a@1e71731e6fbb+ other a@c19d34741b0a ancestor a@1e71731e6fbb | |
79 | a: versions differ -> m (merge) |
|
79 | a: versions differ -> m (merge) | |
80 | picked tool 'true' for a (binary False symlink False changedelete False) |
|
80 | picked tool 'true' for a (binary False symlink False changedelete False) | |
81 | my a@1e71731e6fbb+ other a@c19d34741b0a ancestor a@1e71731e6fbb |
|
81 | my a@1e71731e6fbb+ other a@c19d34741b0a ancestor a@1e71731e6fbb | |
82 | launching merge tool: true *$TESTTMP/r2/a* * * (glob) |
|
82 | launching merge tool: true *$TESTTMP/r2/a* * * (glob) | |
83 | merge tool returned: 0 |
|
83 | merge tool returned: 0 | |
84 | 0 files updated, 1 files merged, 1 files removed, 0 files unresolved |
|
84 | 0 files updated, 1 files merged, 1 files removed, 0 files unresolved | |
85 | $ hg parents |
|
85 | $ hg parents | |
86 | changeset: 0:c19d34741b0a |
|
86 | changeset: 0:c19d34741b0a | |
87 | user: test |
|
87 | user: test | |
88 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
88 | date: Thu Jan 01 00:00:00 1970 +0000 | |
89 | summary: 1 |
|
89 | summary: 1 | |
90 |
|
90 | |||
91 | $ hg --debug up |
|
91 | $ hg --debug up | |
92 | resolving manifests |
|
92 | resolving manifests | |
93 | branchmerge: False, force: False, partial: False |
|
93 | branchmerge: False, force: False, partial: False | |
94 | ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb |
|
94 | ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb | |
95 | b: remote created -> g |
|
95 | b: remote created -> g | |
96 | getting b |
|
96 | getting b | |
97 | preserving a for resolve of a |
|
97 | preserving a for resolve of a | |
98 | a: versions differ -> m (premerge) |
|
98 | a: versions differ -> m (premerge) | |
99 | picked tool 'true' for a (binary False symlink False changedelete False) |
|
99 | picked tool 'true' for a (binary False symlink False changedelete False) | |
100 | merging a |
|
100 | merging a | |
101 | my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a |
|
101 | my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a | |
102 | a: versions differ -> m (merge) |
|
102 | a: versions differ -> m (merge) | |
103 | picked tool 'true' for a (binary False symlink False changedelete False) |
|
103 | picked tool 'true' for a (binary False symlink False changedelete False) | |
104 | my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a |
|
104 | my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a | |
105 | launching merge tool: true *$TESTTMP/r2/a* * * (glob) |
|
105 | launching merge tool: true *$TESTTMP/r2/a* * * (glob) | |
106 | merge tool returned: 0 |
|
106 | merge tool returned: 0 | |
107 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
107 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
108 | $ hg parents |
|
108 | $ hg parents | |
109 | changeset: 1:1e71731e6fbb |
|
109 | changeset: 1:1e71731e6fbb | |
110 | tag: tip |
|
110 | tag: tip | |
111 | user: test |
|
111 | user: test | |
112 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
112 | date: Thu Jan 01 00:00:00 1970 +0000 | |
113 | summary: 2 |
|
113 | summary: 2 | |
114 |
|
114 | |||
115 | $ hg -v history |
|
115 | $ hg -v history | |
116 | changeset: 1:1e71731e6fbb |
|
116 | changeset: 1:1e71731e6fbb | |
117 | tag: tip |
|
117 | tag: tip | |
118 | user: test |
|
118 | user: test | |
119 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
119 | date: Thu Jan 01 00:00:00 1970 +0000 | |
120 | files: a b |
|
120 | files: a b | |
121 | description: |
|
121 | description: | |
122 | 2 |
|
122 | 2 | |
123 |
|
123 | |||
124 |
|
124 | |||
125 | changeset: 0:c19d34741b0a |
|
125 | changeset: 0:c19d34741b0a | |
126 | user: test |
|
126 | user: test | |
127 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
127 | date: Thu Jan 01 00:00:00 1970 +0000 | |
128 | files: a |
|
128 | files: a | |
129 | description: |
|
129 | description: | |
130 | 1 |
|
130 | 1 | |
131 |
|
131 | |||
132 |
|
132 | |||
133 | $ hg diff --nodates |
|
133 | $ hg diff --nodates | |
134 | diff -r 1e71731e6fbb a |
|
134 | diff -r 1e71731e6fbb a | |
135 | --- a/a |
|
135 | --- a/a | |
136 | +++ b/a |
|
136 | +++ b/a | |
137 | @@ -1,1 +1,1 @@ |
|
137 | @@ -1,1 +1,1 @@ | |
138 | -a2 |
|
138 | -a2 | |
139 | +abc |
|
139 | +abc | |
140 |
|
140 | |||
141 |
|
141 | |||
142 | create a second head |
|
142 | create a second head | |
143 |
|
143 | |||
144 | $ cd ../r1 |
|
144 | $ cd ../r1 | |
145 | $ hg up 0 |
|
145 | $ hg up 0 | |
146 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
146 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
147 | $ echo b2 > b |
|
147 | $ echo b2 > b | |
148 | $ echo a3 > a |
|
148 | $ echo a3 > a | |
149 | $ hg addremove |
|
149 | $ hg addremove | |
150 | adding b |
|
150 | adding b | |
151 | $ hg commit -m "3" |
|
151 | $ hg commit -m "3" | |
152 | created new head |
|
152 | created new head | |
153 |
|
153 | |||
154 | $ cd ../r2 |
|
154 | $ cd ../r2 | |
155 | $ hg -q pull ../r1 |
|
155 | $ hg -q pull ../r1 | |
156 | $ hg status |
|
156 | $ hg status | |
157 | M a |
|
157 | M a | |
158 | $ hg parents |
|
158 | $ hg parents | |
159 | changeset: 1:1e71731e6fbb |
|
159 | changeset: 1:1e71731e6fbb | |
160 | user: test |
|
160 | user: test | |
161 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
161 | date: Thu Jan 01 00:00:00 1970 +0000 | |
162 | summary: 2 |
|
162 | summary: 2 | |
163 |
|
163 | |||
164 | $ hg --debug up |
|
164 | $ hg --debug up | |
165 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
165 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
166 | updated to "1e71731e6fbb: 2" |
|
166 | updated to "1e71731e6fbb: 2" | |
167 | 1 other heads for branch "default" |
|
167 | 1 other heads for branch "default" | |
168 |
|
168 | |||
169 | test conflicting untracked files |
|
169 | test conflicting untracked files | |
170 |
|
170 | |||
171 | $ hg up -qC 0 |
|
171 | $ hg up -qC 0 | |
172 | $ echo untracked > b |
|
172 | $ echo untracked > b | |
173 | $ hg st |
|
173 | $ hg st | |
174 | ? b |
|
174 | ? b | |
175 | $ hg up 1 |
|
175 | $ hg up 1 | |
176 | b: untracked file differs |
|
176 | b: untracked file differs | |
177 | abort: untracked files in working directory differ from files in requested revision |
|
177 | abort: untracked files in working directory differ from files in requested revision | |
178 | [255] |
|
178 | [255] | |
179 | $ rm b |
|
179 | $ rm b | |
180 |
|
180 | |||
181 | test conflicting untracked ignored file |
|
181 | test conflicting untracked ignored file | |
182 |
|
182 | |||
183 | $ hg up -qC 0 |
|
183 | $ hg up -qC 0 | |
184 | $ echo ignored > .hgignore |
|
184 | $ echo ignored > .hgignore | |
185 | $ hg add .hgignore |
|
185 | $ hg add .hgignore | |
186 | $ hg ci -m 'add .hgignore' |
|
186 | $ hg ci -m 'add .hgignore' | |
187 | created new head |
|
187 | created new head | |
188 | $ echo ignored > ignored |
|
188 | $ echo ignored > ignored | |
189 | $ hg add ignored |
|
189 | $ hg add ignored | |
190 | $ hg ci -m 'add ignored file' |
|
190 | $ hg ci -m 'add ignored file' | |
191 |
|
191 | |||
192 | $ hg up -q 'desc("add .hgignore")' |
|
192 | $ hg up -q 'desc("add .hgignore")' | |
193 | $ echo untracked > ignored |
|
193 | $ echo untracked > ignored | |
194 | $ hg st |
|
194 | $ hg st | |
195 | $ hg up 'desc("add ignored file")' |
|
195 | $ hg up 'desc("add ignored file")' | |
196 | ignored: untracked file differs |
|
196 | ignored: untracked file differs | |
197 | abort: untracked files in working directory differ from files in requested revision |
|
197 | abort: untracked files in working directory differ from files in requested revision | |
198 | [255] |
|
198 | [255] | |
199 |
|
199 | |||
200 | test a local add |
|
200 | test a local add | |
201 |
|
201 | |||
202 | $ cd .. |
|
202 | $ cd .. | |
203 | $ hg init a |
|
203 | $ hg init a | |
204 | $ hg init b |
|
204 | $ hg init b | |
205 | $ echo a > a/a |
|
205 | $ echo a > a/a | |
206 | $ echo a > b/a |
|
206 | $ echo a > b/a | |
207 | $ hg --cwd a commit -A -m a |
|
207 | $ hg --cwd a commit -A -m a | |
208 | adding a |
|
208 | adding a | |
209 | $ cd b |
|
209 | $ cd b | |
210 | $ hg add a |
|
210 | $ hg add a | |
211 | $ hg pull -u ../a |
|
211 | $ hg pull -u ../a | |
212 | pulling from ../a |
|
212 | pulling from ../a | |
213 | requesting all changes |
|
213 | requesting all changes | |
214 | adding changesets |
|
214 | adding changesets | |
215 | adding manifests |
|
215 | adding manifests | |
216 | adding file changes |
|
216 | adding file changes | |
217 | added 1 changesets with 1 changes to 1 files |
|
217 | added 1 changesets with 1 changes to 1 files | |
218 | new changesets cb9a9f314b8b |
|
218 | new changesets cb9a9f314b8b | |
219 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
219 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
220 | $ hg st |
|
220 | $ hg st | |
221 |
|
221 | |||
222 | test updating backwards through a rename |
|
222 | test updating backwards through a rename | |
223 |
|
223 | |||
224 | $ hg mv a b |
|
224 | $ hg mv a b | |
225 | $ hg ci -m b |
|
225 | $ hg ci -m b | |
226 | $ echo b > b |
|
226 | $ echo b > b | |
227 | $ hg up -q 0 |
|
227 | $ hg up -q 0 | |
228 | $ hg st |
|
228 | $ hg st | |
229 | M a |
|
229 | M a | |
230 | $ hg diff --nodates |
|
230 | $ hg diff --nodates | |
231 | diff -r cb9a9f314b8b a |
|
231 | diff -r cb9a9f314b8b a | |
232 | --- a/a |
|
232 | --- a/a | |
233 | +++ b/a |
|
233 | +++ b/a | |
234 | @@ -1,1 +1,1 @@ |
|
234 | @@ -1,1 +1,1 @@ | |
235 | -a |
|
235 | -a | |
236 | +b |
|
236 | +b | |
237 |
|
237 | |||
238 | test for superfluous filemerge of clean files renamed in the past |
|
238 | test for superfluous filemerge of clean files renamed in the past | |
239 |
|
239 | |||
240 | $ hg up -qC tip |
|
240 | $ hg up -qC tip | |
241 | $ echo c > c |
|
241 | $ echo c > c | |
242 | $ hg add c |
|
242 | $ hg add c | |
243 | $ hg up -qt:fail 0 |
|
243 | $ hg up -qt:fail 0 | |
244 |
|
244 | |||
245 | $ cd .. |
|
245 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now