##// END OF EJS Templates
test: use generaldelta in 'test-rebase-newancestors.t'...
Pierre-Yves David -
r26928:42b5193a default
parent child Browse files
Show More
@@ -1,330 +1,332 b''
1 $ cat >> $HGRCPATH <<EOF
1 $ cat >> $HGRCPATH <<EOF
2 > [format]
3 > usegeneraldelta=yes
2 > [extensions]
4 > [extensions]
3 > rebase=
5 > rebase=
4 >
6 >
5 > [alias]
7 > [alias]
6 > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
8 > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
7 > EOF
9 > EOF
8
10
9 $ hg init repo
11 $ hg init repo
10 $ cd repo
12 $ cd repo
11
13
12 $ echo A > a
14 $ echo A > a
13 $ echo >> a
15 $ echo >> a
14 $ hg ci -Am A
16 $ hg ci -Am A
15 adding a
17 adding a
16
18
17 $ echo B > a
19 $ echo B > a
18 $ echo >> a
20 $ echo >> a
19 $ hg ci -m B
21 $ hg ci -m B
20
22
21 $ echo C > a
23 $ echo C > a
22 $ echo >> a
24 $ echo >> a
23 $ hg ci -m C
25 $ hg ci -m C
24
26
25 $ hg up -q -C 0
27 $ hg up -q -C 0
26
28
27 $ echo D >> a
29 $ echo D >> a
28 $ hg ci -Am AD
30 $ hg ci -Am AD
29 created new head
31 created new head
30
32
31 $ hg tglog
33 $ hg tglog
32 @ 3: 'AD'
34 @ 3: 'AD'
33 |
35 |
34 | o 2: 'C'
36 | o 2: 'C'
35 | |
37 | |
36 | o 1: 'B'
38 | o 1: 'B'
37 |/
39 |/
38 o 0: 'A'
40 o 0: 'A'
39
41
40 $ hg rebase -s 1 -d 3
42 $ hg rebase -s 1 -d 3
41 rebasing 1:0f4f7cb4f549 "B"
43 rebasing 1:0f4f7cb4f549 "B"
42 merging a
44 merging a
43 rebasing 2:30ae917c0e4f "C"
45 rebasing 2:30ae917c0e4f "C"
44 merging a
46 merging a
45 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/0f4f7cb4f549-82b3b163-backup.hg (glob)
47 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/0f4f7cb4f549-82b3b163-backup.hg (glob)
46
48
47 $ hg tglog
49 $ hg tglog
48 o 3: 'C'
50 o 3: 'C'
49 |
51 |
50 o 2: 'B'
52 o 2: 'B'
51 |
53 |
52 @ 1: 'AD'
54 @ 1: 'AD'
53 |
55 |
54 o 0: 'A'
56 o 0: 'A'
55
57
56
58
57 $ cd ..
59 $ cd ..
58
60
59
61
60 Test rebasing of merges with ancestors of the rebase destination - a situation
62 Test rebasing of merges with ancestors of the rebase destination - a situation
61 that often happens when trying to recover from repeated merging with a mainline
63 that often happens when trying to recover from repeated merging with a mainline
62 branch.
64 branch.
63
65
64 The test case creates a dev branch that contains a couple of merges from the
66 The test case creates a dev branch that contains a couple of merges from the
65 default branch. When rebasing to the default branch, these merges would be
67 default branch. When rebasing to the default branch, these merges would be
66 merges with ancestors on the same branch. The merges _could_ contain some
68 merges with ancestors on the same branch. The merges _could_ contain some
67 interesting conflict resolutions or additional changes in the merge commit, but
69 interesting conflict resolutions or additional changes in the merge commit, but
68 that is mixed up with the actual merge stuff and there is in general no way to
70 that is mixed up with the actual merge stuff and there is in general no way to
69 separate them.
71 separate them.
70
72
71 Note: The dev branch contains _no_ changes to f-default. It might be unclear
73 Note: The dev branch contains _no_ changes to f-default. It might be unclear
72 how rebasing of ancestor merges should be handled, but the current behavior
74 how rebasing of ancestor merges should be handled, but the current behavior
73 with spurious prompts for conflicts in files that didn't change seems very
75 with spurious prompts for conflicts in files that didn't change seems very
74 wrong.
76 wrong.
75
77
76 $ hg init ancestor-merge
78 $ hg init ancestor-merge
77 $ cd ancestor-merge
79 $ cd ancestor-merge
78
80
79 $ touch f-default
81 $ touch f-default
80 $ hg ci -Aqm 'default: create f-default'
82 $ hg ci -Aqm 'default: create f-default'
81
83
82 $ hg branch -q dev
84 $ hg branch -q dev
83 $ hg ci -qm 'dev: create branch'
85 $ hg ci -qm 'dev: create branch'
84
86
85 $ echo stuff > f-dev
87 $ echo stuff > f-dev
86 $ hg ci -Aqm 'dev: f-dev stuff'
88 $ hg ci -Aqm 'dev: f-dev stuff'
87
89
88 $ hg up -q default
90 $ hg up -q default
89 $ echo stuff > f-default
91 $ echo stuff > f-default
90 $ hg ci -m 'default: f-default stuff'
92 $ hg ci -m 'default: f-default stuff'
91
93
92 $ hg up -q dev
94 $ hg up -q dev
93 $ hg merge -q default
95 $ hg merge -q default
94 $ hg ci -m 'dev: merge default'
96 $ hg ci -m 'dev: merge default'
95
97
96 $ hg up -q default
98 $ hg up -q default
97 $ hg rm f-default
99 $ hg rm f-default
98 $ hg ci -m 'default: remove f-default'
100 $ hg ci -m 'default: remove f-default'
99
101
100 $ hg up -q dev
102 $ hg up -q dev
101 $ hg merge -q default
103 $ hg merge -q default
102 $ hg ci -m 'dev: merge default'
104 $ hg ci -m 'dev: merge default'
103
105
104 $ hg up -q default
106 $ hg up -q default
105 $ echo stuff > f-other
107 $ echo stuff > f-other
106 $ hg ci -Aqm 'default: f-other stuff'
108 $ hg ci -Aqm 'default: f-other stuff'
107
109
108 $ hg tglog
110 $ hg tglog
109 @ 7: 'default: f-other stuff'
111 @ 7: 'default: f-other stuff'
110 |
112 |
111 | o 6: 'dev: merge default' dev
113 | o 6: 'dev: merge default' dev
112 |/|
114 |/|
113 o | 5: 'default: remove f-default'
115 o | 5: 'default: remove f-default'
114 | |
116 | |
115 | o 4: 'dev: merge default' dev
117 | o 4: 'dev: merge default' dev
116 |/|
118 |/|
117 o | 3: 'default: f-default stuff'
119 o | 3: 'default: f-default stuff'
118 | |
120 | |
119 | o 2: 'dev: f-dev stuff' dev
121 | o 2: 'dev: f-dev stuff' dev
120 | |
122 | |
121 | o 1: 'dev: create branch' dev
123 | o 1: 'dev: create branch' dev
122 |/
124 |/
123 o 0: 'default: create f-default'
125 o 0: 'default: create f-default'
124
126
125 $ hg clone -qU . ../ancestor-merge-2
127 $ hg clone -qU . ../ancestor-merge-2
126
128
127 Full rebase all the way back from branching point:
129 Full rebase all the way back from branching point:
128
130
129 $ hg rebase -r 'only(dev,default)' -d default
131 $ hg rebase -r 'only(dev,default)' -d default
130 rebasing 1:1d1a643d390e "dev: create branch"
132 rebasing 1:1d1a643d390e "dev: create branch"
131 note: rebase of 1:1d1a643d390e created no changes to commit
133 note: rebase of 1:1d1a643d390e created no changes to commit
132 rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
134 rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
133 rebasing 4:4b019212aaf6 "dev: merge default"
135 rebasing 4:4b019212aaf6 "dev: merge default"
134 remote changed f-default which local deleted
136 remote changed f-default which local deleted
135 use (c)hanged version or leave (d)eleted? c
137 use (c)hanged version or leave (d)eleted? c
136 rebasing 6:9455ee510502 "dev: merge default"
138 rebasing 6:9455ee510502 "dev: merge default"
137 saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-43e9e04b-backup.hg (glob)
139 saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-43e9e04b-backup.hg (glob)
138 $ hg tglog
140 $ hg tglog
139 o 6: 'dev: merge default'
141 o 6: 'dev: merge default'
140 |
142 |
141 o 5: 'dev: merge default'
143 o 5: 'dev: merge default'
142 |
144 |
143 o 4: 'dev: f-dev stuff'
145 o 4: 'dev: f-dev stuff'
144 |
146 |
145 @ 3: 'default: f-other stuff'
147 @ 3: 'default: f-other stuff'
146 |
148 |
147 o 2: 'default: remove f-default'
149 o 2: 'default: remove f-default'
148 |
150 |
149 o 1: 'default: f-default stuff'
151 o 1: 'default: f-default stuff'
150 |
152 |
151 o 0: 'default: create f-default'
153 o 0: 'default: create f-default'
152
154
153 Grafty cherry picking rebasing:
155 Grafty cherry picking rebasing:
154
156
155 $ cd ../ancestor-merge-2
157 $ cd ../ancestor-merge-2
156
158
157 $ hg phase -fdr0:
159 $ hg phase -fdr0:
158 $ hg rebase -r 'children(only(dev,default))' -d default
160 $ hg rebase -r 'children(only(dev,default))' -d default
159 rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
161 rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
160 rebasing 4:4b019212aaf6 "dev: merge default"
162 rebasing 4:4b019212aaf6 "dev: merge default"
161 remote changed f-default which local deleted
163 remote changed f-default which local deleted
162 use (c)hanged version or leave (d)eleted? c
164 use (c)hanged version or leave (d)eleted? c
163 rebasing 6:9455ee510502 "dev: merge default"
165 rebasing 6:9455ee510502 "dev: merge default"
164 saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-62d0b222-backup.hg (glob)
166 saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-62d0b222-backup.hg (glob)
165 $ hg tglog
167 $ hg tglog
166 o 7: 'dev: merge default'
168 o 7: 'dev: merge default'
167 |
169 |
168 o 6: 'dev: merge default'
170 o 6: 'dev: merge default'
169 |
171 |
170 o 5: 'dev: f-dev stuff'
172 o 5: 'dev: f-dev stuff'
171 |
173 |
172 o 4: 'default: f-other stuff'
174 o 4: 'default: f-other stuff'
173 |
175 |
174 o 3: 'default: remove f-default'
176 o 3: 'default: remove f-default'
175 |
177 |
176 o 2: 'default: f-default stuff'
178 o 2: 'default: f-default stuff'
177 |
179 |
178 | o 1: 'dev: create branch' dev
180 | o 1: 'dev: create branch' dev
179 |/
181 |/
180 o 0: 'default: create f-default'
182 o 0: 'default: create f-default'
181
183
182 $ cd ..
184 $ cd ..
183
185
184
186
185 Test order of parents of rebased merged with un-rebased changes as p1.
187 Test order of parents of rebased merged with un-rebased changes as p1.
186
188
187 $ hg init parentorder
189 $ hg init parentorder
188 $ cd parentorder
190 $ cd parentorder
189 $ touch f
191 $ touch f
190 $ hg ci -Aqm common
192 $ hg ci -Aqm common
191 $ touch change
193 $ touch change
192 $ hg ci -Aqm change
194 $ hg ci -Aqm change
193 $ touch target
195 $ touch target
194 $ hg ci -Aqm target
196 $ hg ci -Aqm target
195 $ hg up -qr 0
197 $ hg up -qr 0
196 $ touch outside
198 $ touch outside
197 $ hg ci -Aqm outside
199 $ hg ci -Aqm outside
198 $ hg merge -qr 1
200 $ hg merge -qr 1
199 $ hg ci -m 'merge p1 3=outside p2 1=ancestor'
201 $ hg ci -m 'merge p1 3=outside p2 1=ancestor'
200 $ hg par
202 $ hg par
201 changeset: 4:6990226659be
203 changeset: 4:6990226659be
202 tag: tip
204 tag: tip
203 parent: 3:f59da8fc0fcf
205 parent: 3:f59da8fc0fcf
204 parent: 1:dd40c13f7a6f
206 parent: 1:dd40c13f7a6f
205 user: test
207 user: test
206 date: Thu Jan 01 00:00:00 1970 +0000
208 date: Thu Jan 01 00:00:00 1970 +0000
207 summary: merge p1 3=outside p2 1=ancestor
209 summary: merge p1 3=outside p2 1=ancestor
208
210
209 $ hg up -qr 1
211 $ hg up -qr 1
210 $ hg merge -qr 3
212 $ hg merge -qr 3
211 $ hg ci -qm 'merge p1 1=ancestor p2 3=outside'
213 $ hg ci -qm 'merge p1 1=ancestor p2 3=outside'
212 $ hg par
214 $ hg par
213 changeset: 5:a57575f79074
215 changeset: 5:a57575f79074
214 tag: tip
216 tag: tip
215 parent: 1:dd40c13f7a6f
217 parent: 1:dd40c13f7a6f
216 parent: 3:f59da8fc0fcf
218 parent: 3:f59da8fc0fcf
217 user: test
219 user: test
218 date: Thu Jan 01 00:00:00 1970 +0000
220 date: Thu Jan 01 00:00:00 1970 +0000
219 summary: merge p1 1=ancestor p2 3=outside
221 summary: merge p1 1=ancestor p2 3=outside
220
222
221 $ hg tglog
223 $ hg tglog
222 @ 5: 'merge p1 1=ancestor p2 3=outside'
224 @ 5: 'merge p1 1=ancestor p2 3=outside'
223 |\
225 |\
224 +---o 4: 'merge p1 3=outside p2 1=ancestor'
226 +---o 4: 'merge p1 3=outside p2 1=ancestor'
225 | |/
227 | |/
226 | o 3: 'outside'
228 | o 3: 'outside'
227 | |
229 | |
228 +---o 2: 'target'
230 +---o 2: 'target'
229 | |
231 | |
230 o | 1: 'change'
232 o | 1: 'change'
231 |/
233 |/
232 o 0: 'common'
234 o 0: 'common'
233
235
234 $ hg rebase -r 4 -d 2
236 $ hg rebase -r 4 -d 2
235 rebasing 4:6990226659be "merge p1 3=outside p2 1=ancestor"
237 rebasing 4:6990226659be "merge p1 3=outside p2 1=ancestor"
236 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/6990226659be-4d67a0d3-backup.hg (glob)
238 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/6990226659be-4d67a0d3-backup.hg (glob)
237 $ hg tip
239 $ hg tip
238 changeset: 5:cca50676b1c5
240 changeset: 5:cca50676b1c5
239 tag: tip
241 tag: tip
240 parent: 2:a60552eb93fb
242 parent: 2:a60552eb93fb
241 parent: 3:f59da8fc0fcf
243 parent: 3:f59da8fc0fcf
242 user: test
244 user: test
243 date: Thu Jan 01 00:00:00 1970 +0000
245 date: Thu Jan 01 00:00:00 1970 +0000
244 summary: merge p1 3=outside p2 1=ancestor
246 summary: merge p1 3=outside p2 1=ancestor
245
247
246 $ hg rebase -r 4 -d 2
248 $ hg rebase -r 4 -d 2
247 rebasing 4:a57575f79074 "merge p1 1=ancestor p2 3=outside"
249 rebasing 4:a57575f79074 "merge p1 1=ancestor p2 3=outside"
248 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/a57575f79074-385426e5-backup.hg (glob)
250 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/a57575f79074-385426e5-backup.hg (glob)
249 $ hg tip
251 $ hg tip
250 changeset: 5:f9daf77ffe76
252 changeset: 5:f9daf77ffe76
251 tag: tip
253 tag: tip
252 parent: 2:a60552eb93fb
254 parent: 2:a60552eb93fb
253 parent: 3:f59da8fc0fcf
255 parent: 3:f59da8fc0fcf
254 user: test
256 user: test
255 date: Thu Jan 01 00:00:00 1970 +0000
257 date: Thu Jan 01 00:00:00 1970 +0000
256 summary: merge p1 1=ancestor p2 3=outside
258 summary: merge p1 1=ancestor p2 3=outside
257
259
258 $ hg tglog
260 $ hg tglog
259 @ 5: 'merge p1 1=ancestor p2 3=outside'
261 @ 5: 'merge p1 1=ancestor p2 3=outside'
260 |\
262 |\
261 +---o 4: 'merge p1 3=outside p2 1=ancestor'
263 +---o 4: 'merge p1 3=outside p2 1=ancestor'
262 | |/
264 | |/
263 | o 3: 'outside'
265 | o 3: 'outside'
264 | |
266 | |
265 o | 2: 'target'
267 o | 2: 'target'
266 | |
268 | |
267 o | 1: 'change'
269 o | 1: 'change'
268 |/
270 |/
269 o 0: 'common'
271 o 0: 'common'
270
272
271 rebase of merge of ancestors
273 rebase of merge of ancestors
272
274
273 $ hg up -qr 2
275 $ hg up -qr 2
274 $ hg merge -qr 3
276 $ hg merge -qr 3
275 $ echo 'other change while merging future "rebase ancestors"' > other
277 $ echo 'other change while merging future "rebase ancestors"' > other
276 $ hg ci -Aqm 'merge rebase ancestors'
278 $ hg ci -Aqm 'merge rebase ancestors'
277 $ hg rebase -d 5 -v
279 $ hg rebase -d 5 -v
278 rebasing 6:4c5f12f25ebe "merge rebase ancestors" (tip)
280 rebasing 6:4c5f12f25ebe "merge rebase ancestors" (tip)
279 resolving manifests
281 resolving manifests
280 removing other
282 removing other
281 note: merging f9daf77ffe76+ and 4c5f12f25ebe using bids from ancestors a60552eb93fb and f59da8fc0fcf
283 note: merging f9daf77ffe76+ and 4c5f12f25ebe using bids from ancestors a60552eb93fb and f59da8fc0fcf
282
284
283 calculating bids for ancestor a60552eb93fb
285 calculating bids for ancestor a60552eb93fb
284 resolving manifests
286 resolving manifests
285
287
286 calculating bids for ancestor f59da8fc0fcf
288 calculating bids for ancestor f59da8fc0fcf
287 resolving manifests
289 resolving manifests
288
290
289 auction for merging merge bids
291 auction for merging merge bids
290 other: consensus for g
292 other: consensus for g
291 end of auction
293 end of auction
292
294
293 getting other
295 getting other
294 committing files:
296 committing files:
295 other
297 other
296 committing manifest
298 committing manifest
297 committing changelog
299 committing changelog
298 rebase merging completed
300 rebase merging completed
299 1 changesets found
301 1 changesets found
300 uncompressed size of bundle content:
302 uncompressed size of bundle content:
301 193 (changelog)
303 213 (changelog)
302 196 (manifests)
304 216 (manifests)
303 162 other
305 182 other
304 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/4c5f12f25ebe-f46990e5-backup.hg (glob)
306 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/4c5f12f25ebe-f46990e5-backup.hg (glob)
305 1 changesets found
307 1 changesets found
306 uncompressed size of bundle content:
308 uncompressed size of bundle content:
307 252 (changelog)
309 272 (changelog)
308 147 (manifests)
310 167 (manifests)
309 162 other
311 182 other
310 adding branch
312 adding branch
311 adding changesets
313 adding changesets
312 adding manifests
314 adding manifests
313 adding file changes
315 adding file changes
314 added 1 changesets with 1 changes to 1 files
316 added 1 changesets with 1 changes to 1 files
315 rebase completed
317 rebase completed
316 $ hg tglog
318 $ hg tglog
317 @ 6: 'merge rebase ancestors'
319 @ 6: 'merge rebase ancestors'
318 |
320 |
319 o 5: 'merge p1 1=ancestor p2 3=outside'
321 o 5: 'merge p1 1=ancestor p2 3=outside'
320 |\
322 |\
321 +---o 4: 'merge p1 3=outside p2 1=ancestor'
323 +---o 4: 'merge p1 3=outside p2 1=ancestor'
322 | |/
324 | |/
323 | o 3: 'outside'
325 | o 3: 'outside'
324 | |
326 | |
325 o | 2: 'target'
327 o | 2: 'target'
326 | |
328 | |
327 o | 1: 'change'
329 o | 1: 'change'
328 |/
330 |/
329 o 0: 'common'
331 o 0: 'common'
330
332
General Comments 0
You need to be logged in to leave comments. Login now