##// END OF EJS Templates
tests: demonstrate broken rebase from obsolete commit...
Martin von Zweigbergk -
r31295:7f869d81 default
parent child Browse files
Show More
@@ -1,951 +1,964 b''
1 ==========================
1 ==========================
2 Test rebase with obsolete
2 Test rebase with obsolete
3 ==========================
3 ==========================
4
4
5 Enable obsolete
5 Enable obsolete
6
6
7 $ cat >> $HGRCPATH << EOF
7 $ cat >> $HGRCPATH << EOF
8 > [ui]
8 > [ui]
9 > logtemplate= {rev}:{node|short} {desc|firstline}
9 > logtemplate= {rev}:{node|short} {desc|firstline}
10 > [experimental]
10 > [experimental]
11 > evolution=createmarkers,allowunstable
11 > evolution=createmarkers,allowunstable
12 > [phases]
12 > [phases]
13 > publish=False
13 > publish=False
14 > [extensions]
14 > [extensions]
15 > rebase=
15 > rebase=
16 > EOF
16 > EOF
17
17
18 Setup rebase canonical repo
18 Setup rebase canonical repo
19
19
20 $ hg init base
20 $ hg init base
21 $ cd base
21 $ cd base
22 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
22 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
23 adding changesets
23 adding changesets
24 adding manifests
24 adding manifests
25 adding file changes
25 adding file changes
26 added 8 changesets with 7 changes to 7 files (+2 heads)
26 added 8 changesets with 7 changes to 7 files (+2 heads)
27 (run 'hg heads' to see heads, 'hg merge' to merge)
27 (run 'hg heads' to see heads, 'hg merge' to merge)
28 $ hg up tip
28 $ hg up tip
29 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
29 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
30 $ hg log -G
30 $ hg log -G
31 @ 7:02de42196ebe H
31 @ 7:02de42196ebe H
32 |
32 |
33 | o 6:eea13746799a G
33 | o 6:eea13746799a G
34 |/|
34 |/|
35 o | 5:24b6387c8c8c F
35 o | 5:24b6387c8c8c F
36 | |
36 | |
37 | o 4:9520eea781bc E
37 | o 4:9520eea781bc E
38 |/
38 |/
39 | o 3:32af7686d403 D
39 | o 3:32af7686d403 D
40 | |
40 | |
41 | o 2:5fddd98957c8 C
41 | o 2:5fddd98957c8 C
42 | |
42 | |
43 | o 1:42ccdea3bb16 B
43 | o 1:42ccdea3bb16 B
44 |/
44 |/
45 o 0:cd010b8cd998 A
45 o 0:cd010b8cd998 A
46
46
47 $ cd ..
47 $ cd ..
48
48
49 simple rebase
49 simple rebase
50 ---------------------------------
50 ---------------------------------
51
51
52 $ hg clone base simple
52 $ hg clone base simple
53 updating to branch default
53 updating to branch default
54 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
54 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
55 $ cd simple
55 $ cd simple
56 $ hg up 32af7686d403
56 $ hg up 32af7686d403
57 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
57 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
58 $ hg rebase -d eea13746799a
58 $ hg rebase -d eea13746799a
59 rebasing 1:42ccdea3bb16 "B"
59 rebasing 1:42ccdea3bb16 "B"
60 rebasing 2:5fddd98957c8 "C"
60 rebasing 2:5fddd98957c8 "C"
61 rebasing 3:32af7686d403 "D"
61 rebasing 3:32af7686d403 "D"
62 $ hg log -G
62 $ hg log -G
63 @ 10:8eeb3c33ad33 D
63 @ 10:8eeb3c33ad33 D
64 |
64 |
65 o 9:2327fea05063 C
65 o 9:2327fea05063 C
66 |
66 |
67 o 8:e4e5be0395b2 B
67 o 8:e4e5be0395b2 B
68 |
68 |
69 | o 7:02de42196ebe H
69 | o 7:02de42196ebe H
70 | |
70 | |
71 o | 6:eea13746799a G
71 o | 6:eea13746799a G
72 |\|
72 |\|
73 | o 5:24b6387c8c8c F
73 | o 5:24b6387c8c8c F
74 | |
74 | |
75 o | 4:9520eea781bc E
75 o | 4:9520eea781bc E
76 |/
76 |/
77 o 0:cd010b8cd998 A
77 o 0:cd010b8cd998 A
78
78
79 $ hg log --hidden -G
79 $ hg log --hidden -G
80 @ 10:8eeb3c33ad33 D
80 @ 10:8eeb3c33ad33 D
81 |
81 |
82 o 9:2327fea05063 C
82 o 9:2327fea05063 C
83 |
83 |
84 o 8:e4e5be0395b2 B
84 o 8:e4e5be0395b2 B
85 |
85 |
86 | o 7:02de42196ebe H
86 | o 7:02de42196ebe H
87 | |
87 | |
88 o | 6:eea13746799a G
88 o | 6:eea13746799a G
89 |\|
89 |\|
90 | o 5:24b6387c8c8c F
90 | o 5:24b6387c8c8c F
91 | |
91 | |
92 o | 4:9520eea781bc E
92 o | 4:9520eea781bc E
93 |/
93 |/
94 | x 3:32af7686d403 D
94 | x 3:32af7686d403 D
95 | |
95 | |
96 | x 2:5fddd98957c8 C
96 | x 2:5fddd98957c8 C
97 | |
97 | |
98 | x 1:42ccdea3bb16 B
98 | x 1:42ccdea3bb16 B
99 |/
99 |/
100 o 0:cd010b8cd998 A
100 o 0:cd010b8cd998 A
101
101
102 $ hg debugobsolete
102 $ hg debugobsolete
103 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (*) {'user': 'test'} (glob)
103 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (*) {'user': 'test'} (glob)
104 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (*) {'user': 'test'} (glob)
104 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (*) {'user': 'test'} (glob)
105 32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (*) {'user': 'test'} (glob)
105 32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (*) {'user': 'test'} (glob)
106
106
107
107
108 $ cd ..
108 $ cd ..
109
109
110 empty changeset
110 empty changeset
111 ---------------------------------
111 ---------------------------------
112
112
113 $ hg clone base empty
113 $ hg clone base empty
114 updating to branch default
114 updating to branch default
115 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
115 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
116 $ cd empty
116 $ cd empty
117 $ hg up eea13746799a
117 $ hg up eea13746799a
118 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
118 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
119
119
120 We make a copy of both the first changeset in the rebased and some other in the
120 We make a copy of both the first changeset in the rebased and some other in the
121 set.
121 set.
122
122
123 $ hg graft 42ccdea3bb16 32af7686d403
123 $ hg graft 42ccdea3bb16 32af7686d403
124 grafting 1:42ccdea3bb16 "B"
124 grafting 1:42ccdea3bb16 "B"
125 grafting 3:32af7686d403 "D"
125 grafting 3:32af7686d403 "D"
126 $ hg rebase -s 42ccdea3bb16 -d .
126 $ hg rebase -s 42ccdea3bb16 -d .
127 rebasing 1:42ccdea3bb16 "B"
127 rebasing 1:42ccdea3bb16 "B"
128 note: rebase of 1:42ccdea3bb16 created no changes to commit
128 note: rebase of 1:42ccdea3bb16 created no changes to commit
129 rebasing 2:5fddd98957c8 "C"
129 rebasing 2:5fddd98957c8 "C"
130 rebasing 3:32af7686d403 "D"
130 rebasing 3:32af7686d403 "D"
131 note: rebase of 3:32af7686d403 created no changes to commit
131 note: rebase of 3:32af7686d403 created no changes to commit
132 $ hg log -G
132 $ hg log -G
133 o 10:5ae4c968c6ac C
133 o 10:5ae4c968c6ac C
134 |
134 |
135 @ 9:08483444fef9 D
135 @ 9:08483444fef9 D
136 |
136 |
137 o 8:8877864f1edb B
137 o 8:8877864f1edb B
138 |
138 |
139 | o 7:02de42196ebe H
139 | o 7:02de42196ebe H
140 | |
140 | |
141 o | 6:eea13746799a G
141 o | 6:eea13746799a G
142 |\|
142 |\|
143 | o 5:24b6387c8c8c F
143 | o 5:24b6387c8c8c F
144 | |
144 | |
145 o | 4:9520eea781bc E
145 o | 4:9520eea781bc E
146 |/
146 |/
147 o 0:cd010b8cd998 A
147 o 0:cd010b8cd998 A
148
148
149 $ hg log --hidden -G
149 $ hg log --hidden -G
150 o 10:5ae4c968c6ac C
150 o 10:5ae4c968c6ac C
151 |
151 |
152 @ 9:08483444fef9 D
152 @ 9:08483444fef9 D
153 |
153 |
154 o 8:8877864f1edb B
154 o 8:8877864f1edb B
155 |
155 |
156 | o 7:02de42196ebe H
156 | o 7:02de42196ebe H
157 | |
157 | |
158 o | 6:eea13746799a G
158 o | 6:eea13746799a G
159 |\|
159 |\|
160 | o 5:24b6387c8c8c F
160 | o 5:24b6387c8c8c F
161 | |
161 | |
162 o | 4:9520eea781bc E
162 o | 4:9520eea781bc E
163 |/
163 |/
164 | x 3:32af7686d403 D
164 | x 3:32af7686d403 D
165 | |
165 | |
166 | x 2:5fddd98957c8 C
166 | x 2:5fddd98957c8 C
167 | |
167 | |
168 | x 1:42ccdea3bb16 B
168 | x 1:42ccdea3bb16 B
169 |/
169 |/
170 o 0:cd010b8cd998 A
170 o 0:cd010b8cd998 A
171
171
172 $ hg debugobsolete
172 $ hg debugobsolete
173 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
173 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
174 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
174 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
175 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
175 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
176
176
177
177
178 More complex case were part of the rebase set were already rebased
178 More complex case where part of the rebase set were already rebased
179
179
180 $ hg rebase --rev 'desc(D)' --dest 'desc(H)'
180 $ hg rebase --rev 'desc(D)' --dest 'desc(H)'
181 rebasing 9:08483444fef9 "D"
181 rebasing 9:08483444fef9 "D"
182 $ hg debugobsolete
182 $ hg debugobsolete
183 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
183 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
184 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
184 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
185 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
185 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
186 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'user': 'test'} (glob)
186 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'user': 'test'} (glob)
187 $ hg log -G
187 $ hg log -G
188 @ 11:4596109a6a43 D
188 @ 11:4596109a6a43 D
189 |
189 |
190 | o 10:5ae4c968c6ac C
190 | o 10:5ae4c968c6ac C
191 | |
191 | |
192 | x 9:08483444fef9 D
192 | x 9:08483444fef9 D
193 | |
193 | |
194 | o 8:8877864f1edb B
194 | o 8:8877864f1edb B
195 | |
195 | |
196 o | 7:02de42196ebe H
196 o | 7:02de42196ebe H
197 | |
197 | |
198 | o 6:eea13746799a G
198 | o 6:eea13746799a G
199 |/|
199 |/|
200 o | 5:24b6387c8c8c F
200 o | 5:24b6387c8c8c F
201 | |
201 | |
202 | o 4:9520eea781bc E
202 | o 4:9520eea781bc E
203 |/
203 |/
204 o 0:cd010b8cd998 A
204 o 0:cd010b8cd998 A
205
205
206 $ hg rebase --source 'desc(B)' --dest 'tip' --config experimental.rebaseskipobsolete=True
206 $ hg rebase --source 'desc(B)' --dest 'tip' --config experimental.rebaseskipobsolete=True
207 rebasing 8:8877864f1edb "B"
207 rebasing 8:8877864f1edb "B"
208 note: not rebasing 9:08483444fef9 "D", already in destination as 11:4596109a6a43 "D"
208 note: not rebasing 9:08483444fef9 "D", already in destination as 11:4596109a6a43 "D"
209 rebasing 10:5ae4c968c6ac "C"
209 rebasing 10:5ae4c968c6ac "C"
210 $ hg debugobsolete
210 $ hg debugobsolete
211 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
211 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
212 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
212 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
213 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
213 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
214 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'user': 'test'} (glob)
214 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'user': 'test'} (glob)
215 8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (*) {'user': 'test'} (glob)
215 8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (*) {'user': 'test'} (glob)
216 5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (*) {'user': 'test'} (glob)
216 5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (*) {'user': 'test'} (glob)
217 $ hg log --rev 'divergent()'
217 $ hg log --rev 'divergent()'
218 $ hg log -G
218 $ hg log -G
219 o 13:98f6af4ee953 C
219 o 13:98f6af4ee953 C
220 |
220 |
221 o 12:462a34d07e59 B
221 o 12:462a34d07e59 B
222 |
222 |
223 @ 11:4596109a6a43 D
223 @ 11:4596109a6a43 D
224 |
224 |
225 o 7:02de42196ebe H
225 o 7:02de42196ebe H
226 |
226 |
227 | o 6:eea13746799a G
227 | o 6:eea13746799a G
228 |/|
228 |/|
229 o | 5:24b6387c8c8c F
229 o | 5:24b6387c8c8c F
230 | |
230 | |
231 | o 4:9520eea781bc E
231 | o 4:9520eea781bc E
232 |/
232 |/
233 o 0:cd010b8cd998 A
233 o 0:cd010b8cd998 A
234
234
235 $ hg log --style default --debug -r 4596109a6a4328c398bde3a4a3b6737cfade3003
235 $ hg log --style default --debug -r 4596109a6a4328c398bde3a4a3b6737cfade3003
236 changeset: 11:4596109a6a4328c398bde3a4a3b6737cfade3003
236 changeset: 11:4596109a6a4328c398bde3a4a3b6737cfade3003
237 phase: draft
237 phase: draft
238 parent: 7:02de42196ebee42ef284b6780a87cdc96e8eaab6
238 parent: 7:02de42196ebee42ef284b6780a87cdc96e8eaab6
239 parent: -1:0000000000000000000000000000000000000000
239 parent: -1:0000000000000000000000000000000000000000
240 manifest: 11:a91006e3a02f1edf631f7018e6e5684cf27dd905
240 manifest: 11:a91006e3a02f1edf631f7018e6e5684cf27dd905
241 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
241 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
242 date: Sat Apr 30 15:24:48 2011 +0200
242 date: Sat Apr 30 15:24:48 2011 +0200
243 files+: D
243 files+: D
244 extra: branch=default
244 extra: branch=default
245 extra: rebase_source=08483444fef91d6224f6655ee586a65d263ad34c
245 extra: rebase_source=08483444fef91d6224f6655ee586a65d263ad34c
246 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
246 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
247 description:
247 description:
248 D
248 D
249
249
250
250
251 $ hg up -qr 'desc(G)'
251 $ hg up -qr 'desc(G)'
252 $ hg graft 4596109a6a4328c398bde3a4a3b6737cfade3003
252 $ hg graft 4596109a6a4328c398bde3a4a3b6737cfade3003
253 grafting 11:4596109a6a43 "D"
253 grafting 11:4596109a6a43 "D"
254 $ hg up -qr 'desc(E)'
254 $ hg up -qr 'desc(E)'
255 $ hg rebase -s tip -d .
255 $ hg rebase -s tip -d .
256 rebasing 14:9e36056a46e3 "D" (tip)
256 rebasing 14:9e36056a46e3 "D" (tip)
257 $ hg log --style default --debug -r tip
257 $ hg log --style default --debug -r tip
258 changeset: 15:627d4614809036ba22b9e7cb31638ddc06ab99ab
258 changeset: 15:627d4614809036ba22b9e7cb31638ddc06ab99ab
259 tag: tip
259 tag: tip
260 phase: draft
260 phase: draft
261 parent: 4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba
261 parent: 4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba
262 parent: -1:0000000000000000000000000000000000000000
262 parent: -1:0000000000000000000000000000000000000000
263 manifest: 15:648e8ede73ae3e497d093d3a4c8fcc2daa864f42
263 manifest: 15:648e8ede73ae3e497d093d3a4c8fcc2daa864f42
264 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
264 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
265 date: Sat Apr 30 15:24:48 2011 +0200
265 date: Sat Apr 30 15:24:48 2011 +0200
266 files+: D
266 files+: D
267 extra: branch=default
267 extra: branch=default
268 extra: intermediate-source=4596109a6a4328c398bde3a4a3b6737cfade3003
268 extra: intermediate-source=4596109a6a4328c398bde3a4a3b6737cfade3003
269 extra: rebase_source=9e36056a46e37c9776168c7375734eebc70e294f
269 extra: rebase_source=9e36056a46e37c9776168c7375734eebc70e294f
270 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
270 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
271 description:
271 description:
272 D
272 D
273
273
274
274
275 Start rebase from a commit that is obsolete but not hidden only because it's
276 a working copy parent. We should be moved back to the starting commit as usual
277 even though it is hidden (until we're moved there).
278
279 $ hg --hidden up -qr 'first(hidden())'
280 $ hg rebase --rev 13 --dest 15
281 rebasing 13:98f6af4ee953 "C"
282 transaction abort!
283 rollback completed
284 abort: hidden revision '1'!
285 (use --hidden to access hidden revisions)
286 [255]
287
275 $ cd ..
288 $ cd ..
276
289
277 collapse rebase
290 collapse rebase
278 ---------------------------------
291 ---------------------------------
279
292
280 $ hg clone base collapse
293 $ hg clone base collapse
281 updating to branch default
294 updating to branch default
282 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
295 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
283 $ cd collapse
296 $ cd collapse
284 $ hg rebase -s 42ccdea3bb16 -d eea13746799a --collapse
297 $ hg rebase -s 42ccdea3bb16 -d eea13746799a --collapse
285 rebasing 1:42ccdea3bb16 "B"
298 rebasing 1:42ccdea3bb16 "B"
286 rebasing 2:5fddd98957c8 "C"
299 rebasing 2:5fddd98957c8 "C"
287 rebasing 3:32af7686d403 "D"
300 rebasing 3:32af7686d403 "D"
288 $ hg log -G
301 $ hg log -G
289 o 8:4dc2197e807b Collapsed revision
302 o 8:4dc2197e807b Collapsed revision
290 |
303 |
291 | @ 7:02de42196ebe H
304 | @ 7:02de42196ebe H
292 | |
305 | |
293 o | 6:eea13746799a G
306 o | 6:eea13746799a G
294 |\|
307 |\|
295 | o 5:24b6387c8c8c F
308 | o 5:24b6387c8c8c F
296 | |
309 | |
297 o | 4:9520eea781bc E
310 o | 4:9520eea781bc E
298 |/
311 |/
299 o 0:cd010b8cd998 A
312 o 0:cd010b8cd998 A
300
313
301 $ hg log --hidden -G
314 $ hg log --hidden -G
302 o 8:4dc2197e807b Collapsed revision
315 o 8:4dc2197e807b Collapsed revision
303 |
316 |
304 | @ 7:02de42196ebe H
317 | @ 7:02de42196ebe H
305 | |
318 | |
306 o | 6:eea13746799a G
319 o | 6:eea13746799a G
307 |\|
320 |\|
308 | o 5:24b6387c8c8c F
321 | o 5:24b6387c8c8c F
309 | |
322 | |
310 o | 4:9520eea781bc E
323 o | 4:9520eea781bc E
311 |/
324 |/
312 | x 3:32af7686d403 D
325 | x 3:32af7686d403 D
313 | |
326 | |
314 | x 2:5fddd98957c8 C
327 | x 2:5fddd98957c8 C
315 | |
328 | |
316 | x 1:42ccdea3bb16 B
329 | x 1:42ccdea3bb16 B
317 |/
330 |/
318 o 0:cd010b8cd998 A
331 o 0:cd010b8cd998 A
319
332
320 $ hg id --debug -r tip
333 $ hg id --debug -r tip
321 4dc2197e807bae9817f09905b50ab288be2dbbcf tip
334 4dc2197e807bae9817f09905b50ab288be2dbbcf tip
322 $ hg debugobsolete
335 $ hg debugobsolete
323 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
336 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
324 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
337 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
325 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
338 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
326
339
327 $ cd ..
340 $ cd ..
328
341
329 Rebase set has hidden descendants
342 Rebase set has hidden descendants
330 ---------------------------------
343 ---------------------------------
331
344
332 We rebase a changeset which has a hidden changeset. The hidden changeset must
345 We rebase a changeset which has a hidden changeset. The hidden changeset must
333 not be rebased.
346 not be rebased.
334
347
335 $ hg clone base hidden
348 $ hg clone base hidden
336 updating to branch default
349 updating to branch default
337 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
350 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
338 $ cd hidden
351 $ cd hidden
339 $ hg rebase -s 5fddd98957c8 -d eea13746799a
352 $ hg rebase -s 5fddd98957c8 -d eea13746799a
340 rebasing 2:5fddd98957c8 "C"
353 rebasing 2:5fddd98957c8 "C"
341 rebasing 3:32af7686d403 "D"
354 rebasing 3:32af7686d403 "D"
342 $ hg rebase -s 42ccdea3bb16 -d 02de42196ebe
355 $ hg rebase -s 42ccdea3bb16 -d 02de42196ebe
343 rebasing 1:42ccdea3bb16 "B"
356 rebasing 1:42ccdea3bb16 "B"
344 $ hg log -G
357 $ hg log -G
345 o 10:7c6027df6a99 B
358 o 10:7c6027df6a99 B
346 |
359 |
347 | o 9:cf44d2f5a9f4 D
360 | o 9:cf44d2f5a9f4 D
348 | |
361 | |
349 | o 8:e273c5e7d2d2 C
362 | o 8:e273c5e7d2d2 C
350 | |
363 | |
351 @ | 7:02de42196ebe H
364 @ | 7:02de42196ebe H
352 | |
365 | |
353 | o 6:eea13746799a G
366 | o 6:eea13746799a G
354 |/|
367 |/|
355 o | 5:24b6387c8c8c F
368 o | 5:24b6387c8c8c F
356 | |
369 | |
357 | o 4:9520eea781bc E
370 | o 4:9520eea781bc E
358 |/
371 |/
359 o 0:cd010b8cd998 A
372 o 0:cd010b8cd998 A
360
373
361 $ hg log --hidden -G
374 $ hg log --hidden -G
362 o 10:7c6027df6a99 B
375 o 10:7c6027df6a99 B
363 |
376 |
364 | o 9:cf44d2f5a9f4 D
377 | o 9:cf44d2f5a9f4 D
365 | |
378 | |
366 | o 8:e273c5e7d2d2 C
379 | o 8:e273c5e7d2d2 C
367 | |
380 | |
368 @ | 7:02de42196ebe H
381 @ | 7:02de42196ebe H
369 | |
382 | |
370 | o 6:eea13746799a G
383 | o 6:eea13746799a G
371 |/|
384 |/|
372 o | 5:24b6387c8c8c F
385 o | 5:24b6387c8c8c F
373 | |
386 | |
374 | o 4:9520eea781bc E
387 | o 4:9520eea781bc E
375 |/
388 |/
376 | x 3:32af7686d403 D
389 | x 3:32af7686d403 D
377 | |
390 | |
378 | x 2:5fddd98957c8 C
391 | x 2:5fddd98957c8 C
379 | |
392 | |
380 | x 1:42ccdea3bb16 B
393 | x 1:42ccdea3bb16 B
381 |/
394 |/
382 o 0:cd010b8cd998 A
395 o 0:cd010b8cd998 A
383
396
384 $ hg debugobsolete
397 $ hg debugobsolete
385 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (*) {'user': 'test'} (glob)
398 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (*) {'user': 'test'} (glob)
386 32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (*) {'user': 'test'} (glob)
399 32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (*) {'user': 'test'} (glob)
387 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (*) {'user': 'test'} (glob)
400 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (*) {'user': 'test'} (glob)
388
401
389 Test that rewriting leaving instability behind is allowed
402 Test that rewriting leaving instability behind is allowed
390 ---------------------------------------------------------------------
403 ---------------------------------------------------------------------
391
404
392 $ hg log -r 'children(8)'
405 $ hg log -r 'children(8)'
393 9:cf44d2f5a9f4 D (no-eol)
406 9:cf44d2f5a9f4 D (no-eol)
394 $ hg rebase -r 8
407 $ hg rebase -r 8
395 rebasing 8:e273c5e7d2d2 "C"
408 rebasing 8:e273c5e7d2d2 "C"
396 $ hg log -G
409 $ hg log -G
397 o 11:0d8f238b634c C
410 o 11:0d8f238b634c C
398 |
411 |
399 o 10:7c6027df6a99 B
412 o 10:7c6027df6a99 B
400 |
413 |
401 | o 9:cf44d2f5a9f4 D
414 | o 9:cf44d2f5a9f4 D
402 | |
415 | |
403 | x 8:e273c5e7d2d2 C
416 | x 8:e273c5e7d2d2 C
404 | |
417 | |
405 @ | 7:02de42196ebe H
418 @ | 7:02de42196ebe H
406 | |
419 | |
407 | o 6:eea13746799a G
420 | o 6:eea13746799a G
408 |/|
421 |/|
409 o | 5:24b6387c8c8c F
422 o | 5:24b6387c8c8c F
410 | |
423 | |
411 | o 4:9520eea781bc E
424 | o 4:9520eea781bc E
412 |/
425 |/
413 o 0:cd010b8cd998 A
426 o 0:cd010b8cd998 A
414
427
415
428
416
429
417 Test multiple root handling
430 Test multiple root handling
418 ------------------------------------
431 ------------------------------------
419
432
420 $ hg rebase --dest 4 --rev '7+11+9'
433 $ hg rebase --dest 4 --rev '7+11+9'
421 rebasing 9:cf44d2f5a9f4 "D"
434 rebasing 9:cf44d2f5a9f4 "D"
422 rebasing 7:02de42196ebe "H"
435 rebasing 7:02de42196ebe "H"
423 not rebasing ignored 10:7c6027df6a99 "B"
436 not rebasing ignored 10:7c6027df6a99 "B"
424 rebasing 11:0d8f238b634c "C" (tip)
437 rebasing 11:0d8f238b634c "C" (tip)
425 $ hg log -G
438 $ hg log -G
426 o 14:1e8370e38cca C
439 o 14:1e8370e38cca C
427 |
440 |
428 @ 13:bfe264faf697 H
441 @ 13:bfe264faf697 H
429 |
442 |
430 | o 12:102b4c1d889b D
443 | o 12:102b4c1d889b D
431 |/
444 |/
432 | o 10:7c6027df6a99 B
445 | o 10:7c6027df6a99 B
433 | |
446 | |
434 | x 7:02de42196ebe H
447 | x 7:02de42196ebe H
435 | |
448 | |
436 +---o 6:eea13746799a G
449 +---o 6:eea13746799a G
437 | |/
450 | |/
438 | o 5:24b6387c8c8c F
451 | o 5:24b6387c8c8c F
439 | |
452 | |
440 o | 4:9520eea781bc E
453 o | 4:9520eea781bc E
441 |/
454 |/
442 o 0:cd010b8cd998 A
455 o 0:cd010b8cd998 A
443
456
444 $ cd ..
457 $ cd ..
445
458
446 test on rebase dropping a merge
459 test on rebase dropping a merge
447
460
448 (setup)
461 (setup)
449
462
450 $ hg init dropmerge
463 $ hg init dropmerge
451 $ cd dropmerge
464 $ cd dropmerge
452 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
465 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
453 adding changesets
466 adding changesets
454 adding manifests
467 adding manifests
455 adding file changes
468 adding file changes
456 added 8 changesets with 7 changes to 7 files (+2 heads)
469 added 8 changesets with 7 changes to 7 files (+2 heads)
457 (run 'hg heads' to see heads, 'hg merge' to merge)
470 (run 'hg heads' to see heads, 'hg merge' to merge)
458 $ hg up 3
471 $ hg up 3
459 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
472 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
460 $ hg merge 7
473 $ hg merge 7
461 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
474 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
462 (branch merge, don't forget to commit)
475 (branch merge, don't forget to commit)
463 $ hg ci -m 'M'
476 $ hg ci -m 'M'
464 $ echo I > I
477 $ echo I > I
465 $ hg add I
478 $ hg add I
466 $ hg ci -m I
479 $ hg ci -m I
467 $ hg log -G
480 $ hg log -G
468 @ 9:4bde274eefcf I
481 @ 9:4bde274eefcf I
469 |
482 |
470 o 8:53a6a128b2b7 M
483 o 8:53a6a128b2b7 M
471 |\
484 |\
472 | o 7:02de42196ebe H
485 | o 7:02de42196ebe H
473 | |
486 | |
474 | | o 6:eea13746799a G
487 | | o 6:eea13746799a G
475 | |/|
488 | |/|
476 | o | 5:24b6387c8c8c F
489 | o | 5:24b6387c8c8c F
477 | | |
490 | | |
478 | | o 4:9520eea781bc E
491 | | o 4:9520eea781bc E
479 | |/
492 | |/
480 o | 3:32af7686d403 D
493 o | 3:32af7686d403 D
481 | |
494 | |
482 o | 2:5fddd98957c8 C
495 o | 2:5fddd98957c8 C
483 | |
496 | |
484 o | 1:42ccdea3bb16 B
497 o | 1:42ccdea3bb16 B
485 |/
498 |/
486 o 0:cd010b8cd998 A
499 o 0:cd010b8cd998 A
487
500
488 (actual test)
501 (actual test)
489
502
490 $ hg rebase --dest 6 --rev '((desc(H) + desc(D))::) - desc(M)'
503 $ hg rebase --dest 6 --rev '((desc(H) + desc(D))::) - desc(M)'
491 rebasing 3:32af7686d403 "D"
504 rebasing 3:32af7686d403 "D"
492 rebasing 7:02de42196ebe "H"
505 rebasing 7:02de42196ebe "H"
493 not rebasing ignored 8:53a6a128b2b7 "M"
506 not rebasing ignored 8:53a6a128b2b7 "M"
494 rebasing 9:4bde274eefcf "I" (tip)
507 rebasing 9:4bde274eefcf "I" (tip)
495 $ hg log -G
508 $ hg log -G
496 @ 12:acd174b7ab39 I
509 @ 12:acd174b7ab39 I
497 |
510 |
498 o 11:6c11a6218c97 H
511 o 11:6c11a6218c97 H
499 |
512 |
500 | o 10:b5313c85b22e D
513 | o 10:b5313c85b22e D
501 |/
514 |/
502 | o 8:53a6a128b2b7 M
515 | o 8:53a6a128b2b7 M
503 | |\
516 | |\
504 | | x 7:02de42196ebe H
517 | | x 7:02de42196ebe H
505 | | |
518 | | |
506 o---+ 6:eea13746799a G
519 o---+ 6:eea13746799a G
507 | | |
520 | | |
508 | | o 5:24b6387c8c8c F
521 | | o 5:24b6387c8c8c F
509 | | |
522 | | |
510 o---+ 4:9520eea781bc E
523 o---+ 4:9520eea781bc E
511 / /
524 / /
512 x | 3:32af7686d403 D
525 x | 3:32af7686d403 D
513 | |
526 | |
514 o | 2:5fddd98957c8 C
527 o | 2:5fddd98957c8 C
515 | |
528 | |
516 o | 1:42ccdea3bb16 B
529 o | 1:42ccdea3bb16 B
517 |/
530 |/
518 o 0:cd010b8cd998 A
531 o 0:cd010b8cd998 A
519
532
520
533
521 Test hidden changesets in the rebase set (issue4504)
534 Test hidden changesets in the rebase set (issue4504)
522
535
523 $ hg up --hidden 9
536 $ hg up --hidden 9
524 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
537 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
525 $ echo J > J
538 $ echo J > J
526 $ hg add J
539 $ hg add J
527 $ hg commit -m J
540 $ hg commit -m J
528 $ hg debugobsolete `hg log --rev . -T '{node}'`
541 $ hg debugobsolete `hg log --rev . -T '{node}'`
529
542
530 $ hg rebase --rev .~1::. --dest 'max(desc(D))' --traceback --config experimental.rebaseskipobsolete=off
543 $ hg rebase --rev .~1::. --dest 'max(desc(D))' --traceback --config experimental.rebaseskipobsolete=off
531 rebasing 9:4bde274eefcf "I"
544 rebasing 9:4bde274eefcf "I"
532 rebasing 13:06edfc82198f "J" (tip)
545 rebasing 13:06edfc82198f "J" (tip)
533 $ hg log -G
546 $ hg log -G
534 @ 15:5ae8a643467b J
547 @ 15:5ae8a643467b J
535 |
548 |
536 o 14:9ad579b4a5de I
549 o 14:9ad579b4a5de I
537 |
550 |
538 | o 12:acd174b7ab39 I
551 | o 12:acd174b7ab39 I
539 | |
552 | |
540 | o 11:6c11a6218c97 H
553 | o 11:6c11a6218c97 H
541 | |
554 | |
542 o | 10:b5313c85b22e D
555 o | 10:b5313c85b22e D
543 |/
556 |/
544 | o 8:53a6a128b2b7 M
557 | o 8:53a6a128b2b7 M
545 | |\
558 | |\
546 | | x 7:02de42196ebe H
559 | | x 7:02de42196ebe H
547 | | |
560 | | |
548 o---+ 6:eea13746799a G
561 o---+ 6:eea13746799a G
549 | | |
562 | | |
550 | | o 5:24b6387c8c8c F
563 | | o 5:24b6387c8c8c F
551 | | |
564 | | |
552 o---+ 4:9520eea781bc E
565 o---+ 4:9520eea781bc E
553 / /
566 / /
554 x | 3:32af7686d403 D
567 x | 3:32af7686d403 D
555 | |
568 | |
556 o | 2:5fddd98957c8 C
569 o | 2:5fddd98957c8 C
557 | |
570 | |
558 o | 1:42ccdea3bb16 B
571 o | 1:42ccdea3bb16 B
559 |/
572 |/
560 o 0:cd010b8cd998 A
573 o 0:cd010b8cd998 A
561
574
562 $ hg up 14 -C
575 $ hg up 14 -C
563 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
576 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
564 $ echo "K" > K
577 $ echo "K" > K
565 $ hg add K
578 $ hg add K
566 $ hg commit --amend -m "K"
579 $ hg commit --amend -m "K"
567 $ echo "L" > L
580 $ echo "L" > L
568 $ hg add L
581 $ hg add L
569 $ hg commit -m "L"
582 $ hg commit -m "L"
570 $ hg up '.^'
583 $ hg up '.^'
571 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
584 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
572 $ echo "M" > M
585 $ echo "M" > M
573 $ hg add M
586 $ hg add M
574 $ hg commit --amend -m "M"
587 $ hg commit --amend -m "M"
575 $ hg log -G
588 $ hg log -G
576 @ 20:bfaedf8eb73b M
589 @ 20:bfaedf8eb73b M
577 |
590 |
578 | o 18:97219452e4bd L
591 | o 18:97219452e4bd L
579 | |
592 | |
580 | x 17:fc37a630c901 K
593 | x 17:fc37a630c901 K
581 |/
594 |/
582 | o 15:5ae8a643467b J
595 | o 15:5ae8a643467b J
583 | |
596 | |
584 | x 14:9ad579b4a5de I
597 | x 14:9ad579b4a5de I
585 |/
598 |/
586 | o 12:acd174b7ab39 I
599 | o 12:acd174b7ab39 I
587 | |
600 | |
588 | o 11:6c11a6218c97 H
601 | o 11:6c11a6218c97 H
589 | |
602 | |
590 o | 10:b5313c85b22e D
603 o | 10:b5313c85b22e D
591 |/
604 |/
592 | o 8:53a6a128b2b7 M
605 | o 8:53a6a128b2b7 M
593 | |\
606 | |\
594 | | x 7:02de42196ebe H
607 | | x 7:02de42196ebe H
595 | | |
608 | | |
596 o---+ 6:eea13746799a G
609 o---+ 6:eea13746799a G
597 | | |
610 | | |
598 | | o 5:24b6387c8c8c F
611 | | o 5:24b6387c8c8c F
599 | | |
612 | | |
600 o---+ 4:9520eea781bc E
613 o---+ 4:9520eea781bc E
601 / /
614 / /
602 x | 3:32af7686d403 D
615 x | 3:32af7686d403 D
603 | |
616 | |
604 o | 2:5fddd98957c8 C
617 o | 2:5fddd98957c8 C
605 | |
618 | |
606 o | 1:42ccdea3bb16 B
619 o | 1:42ccdea3bb16 B
607 |/
620 |/
608 o 0:cd010b8cd998 A
621 o 0:cd010b8cd998 A
609
622
610 $ hg rebase -s 14 -d 18 --config experimental.rebaseskipobsolete=True
623 $ hg rebase -s 14 -d 18 --config experimental.rebaseskipobsolete=True
611 note: not rebasing 14:9ad579b4a5de "I", already in destination as 17:fc37a630c901 "K"
624 note: not rebasing 14:9ad579b4a5de "I", already in destination as 17:fc37a630c901 "K"
612 rebasing 15:5ae8a643467b "J"
625 rebasing 15:5ae8a643467b "J"
613
626
614 $ cd ..
627 $ cd ..
615
628
616 Skip obsolete changeset even with multiple hops
629 Skip obsolete changeset even with multiple hops
617 -----------------------------------------------
630 -----------------------------------------------
618
631
619 setup
632 setup
620
633
621 $ hg init obsskip
634 $ hg init obsskip
622 $ cd obsskip
635 $ cd obsskip
623 $ cat << EOF >> .hg/hgrc
636 $ cat << EOF >> .hg/hgrc
624 > [experimental]
637 > [experimental]
625 > rebaseskipobsolete = True
638 > rebaseskipobsolete = True
626 > [extensions]
639 > [extensions]
627 > strip =
640 > strip =
628 > EOF
641 > EOF
629 $ echo A > A
642 $ echo A > A
630 $ hg add A
643 $ hg add A
631 $ hg commit -m A
644 $ hg commit -m A
632 $ echo B > B
645 $ echo B > B
633 $ hg add B
646 $ hg add B
634 $ hg commit -m B0
647 $ hg commit -m B0
635 $ hg commit --amend -m B1
648 $ hg commit --amend -m B1
636 $ hg commit --amend -m B2
649 $ hg commit --amend -m B2
637 $ hg up --hidden 'desc(B0)'
650 $ hg up --hidden 'desc(B0)'
638 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
651 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
639 $ echo C > C
652 $ echo C > C
640 $ hg add C
653 $ hg add C
641 $ hg commit -m C
654 $ hg commit -m C
642
655
643 Rebase finds its way in a chain of marker
656 Rebase finds its way in a chain of marker
644
657
645 $ hg rebase -d 'desc(B2)'
658 $ hg rebase -d 'desc(B2)'
646 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"
659 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"
647 rebasing 4:212cb178bcbb "C" (tip)
660 rebasing 4:212cb178bcbb "C" (tip)
648
661
649 Even when the chain include missing node
662 Even when the chain include missing node
650
663
651 $ hg up --hidden 'desc(B0)'
664 $ hg up --hidden 'desc(B0)'
652 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
665 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
653 $ echo D > D
666 $ echo D > D
654 $ hg add D
667 $ hg add D
655 $ hg commit -m D
668 $ hg commit -m D
656 $ hg --hidden strip -r 'desc(B1)'
669 $ hg --hidden strip -r 'desc(B1)'
657 saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg (glob)
670 saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg (glob)
658
671
659 $ hg rebase -d 'desc(B2)'
672 $ hg rebase -d 'desc(B2)'
660 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2"
673 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2"
661 rebasing 5:1a79b7535141 "D" (tip)
674 rebasing 5:1a79b7535141 "D" (tip)
662 $ hg up 4
675 $ hg up 4
663 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
676 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
664 $ echo "O" > O
677 $ echo "O" > O
665 $ hg add O
678 $ hg add O
666 $ hg commit -m O
679 $ hg commit -m O
667 $ echo "P" > P
680 $ echo "P" > P
668 $ hg add P
681 $ hg add P
669 $ hg commit -m P
682 $ hg commit -m P
670 $ hg log -G
683 $ hg log -G
671 @ 8:8d47583e023f P
684 @ 8:8d47583e023f P
672 |
685 |
673 o 7:360bbaa7d3ce O
686 o 7:360bbaa7d3ce O
674 |
687 |
675 | o 6:9c48361117de D
688 | o 6:9c48361117de D
676 | |
689 | |
677 o | 4:ff2c4d47b71d C
690 o | 4:ff2c4d47b71d C
678 |/
691 |/
679 o 2:261e70097290 B2
692 o 2:261e70097290 B2
680 |
693 |
681 o 0:4a2df7238c3b A
694 o 0:4a2df7238c3b A
682
695
683 $ hg debugobsolete `hg log -r 7 -T '{node}\n'` --config experimental.evolution=all
696 $ hg debugobsolete `hg log -r 7 -T '{node}\n'` --config experimental.evolution=all
684 $ hg rebase -d 6 -r "4::"
697 $ hg rebase -d 6 -r "4::"
685 rebasing 4:ff2c4d47b71d "C"
698 rebasing 4:ff2c4d47b71d "C"
686 note: not rebasing 7:360bbaa7d3ce "O", it has no successor
699 note: not rebasing 7:360bbaa7d3ce "O", it has no successor
687 rebasing 8:8d47583e023f "P" (tip)
700 rebasing 8:8d47583e023f "P" (tip)
688
701
689 If all the changeset to be rebased are obsolete and present in the destination, we
702 If all the changeset to be rebased are obsolete and present in the destination, we
690 should display a friendly error message
703 should display a friendly error message
691
704
692 $ hg log -G
705 $ hg log -G
693 @ 10:121d9e3bc4c6 P
706 @ 10:121d9e3bc4c6 P
694 |
707 |
695 o 9:4be60e099a77 C
708 o 9:4be60e099a77 C
696 |
709 |
697 o 6:9c48361117de D
710 o 6:9c48361117de D
698 |
711 |
699 o 2:261e70097290 B2
712 o 2:261e70097290 B2
700 |
713 |
701 o 0:4a2df7238c3b A
714 o 0:4a2df7238c3b A
702
715
703
716
704 $ hg up 9
717 $ hg up 9
705 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
718 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
706 $ echo "non-relevant change" > nonrelevant
719 $ echo "non-relevant change" > nonrelevant
707 $ hg add nonrelevant
720 $ hg add nonrelevant
708 $ hg commit -m nonrelevant
721 $ hg commit -m nonrelevant
709 created new head
722 created new head
710 $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.evolution=all
723 $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.evolution=all
711 $ hg rebase -r . -d 10
724 $ hg rebase -r . -d 10
712 note: not rebasing 11:f44da1f4954c "nonrelevant" (tip), it has no successor
725 note: not rebasing 11:f44da1f4954c "nonrelevant" (tip), it has no successor
713
726
714 If a rebase is going to create divergence, it should abort
727 If a rebase is going to create divergence, it should abort
715
728
716 $ hg log -G
729 $ hg log -G
717 @ 11:f44da1f4954c nonrelevant
730 @ 11:f44da1f4954c nonrelevant
718 |
731 |
719 | o 10:121d9e3bc4c6 P
732 | o 10:121d9e3bc4c6 P
720 |/
733 |/
721 o 9:4be60e099a77 C
734 o 9:4be60e099a77 C
722 |
735 |
723 o 6:9c48361117de D
736 o 6:9c48361117de D
724 |
737 |
725 o 2:261e70097290 B2
738 o 2:261e70097290 B2
726 |
739 |
727 o 0:4a2df7238c3b A
740 o 0:4a2df7238c3b A
728
741
729
742
730 $ hg up 9
743 $ hg up 9
731 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
744 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
732 $ echo "john" > doe
745 $ echo "john" > doe
733 $ hg add doe
746 $ hg add doe
734 $ hg commit -m "john doe"
747 $ hg commit -m "john doe"
735 created new head
748 created new head
736 $ hg up 10
749 $ hg up 10
737 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
750 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
738 $ echo "foo" > bar
751 $ echo "foo" > bar
739 $ hg add bar
752 $ hg add bar
740 $ hg commit --amend -m "10'"
753 $ hg commit --amend -m "10'"
741 $ hg up 10 --hidden
754 $ hg up 10 --hidden
742 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
755 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
743 $ echo "bar" > foo
756 $ echo "bar" > foo
744 $ hg add foo
757 $ hg add foo
745 $ hg commit -m "bar foo"
758 $ hg commit -m "bar foo"
746 $ hg log -G
759 $ hg log -G
747 @ 15:73568ab6879d bar foo
760 @ 15:73568ab6879d bar foo
748 |
761 |
749 | o 14:77d874d096a2 10'
762 | o 14:77d874d096a2 10'
750 | |
763 | |
751 | | o 12:3eb461388009 john doe
764 | | o 12:3eb461388009 john doe
752 | |/
765 | |/
753 x | 10:121d9e3bc4c6 P
766 x | 10:121d9e3bc4c6 P
754 |/
767 |/
755 o 9:4be60e099a77 C
768 o 9:4be60e099a77 C
756 |
769 |
757 o 6:9c48361117de D
770 o 6:9c48361117de D
758 |
771 |
759 o 2:261e70097290 B2
772 o 2:261e70097290 B2
760 |
773 |
761 o 0:4a2df7238c3b A
774 o 0:4a2df7238c3b A
762
775
763 $ hg summary
776 $ hg summary
764 parent: 15:73568ab6879d tip (unstable)
777 parent: 15:73568ab6879d tip (unstable)
765 bar foo
778 bar foo
766 branch: default
779 branch: default
767 commit: (clean)
780 commit: (clean)
768 update: 2 new changesets, 3 branch heads (merge)
781 update: 2 new changesets, 3 branch heads (merge)
769 phases: 8 draft
782 phases: 8 draft
770 unstable: 1 changesets
783 unstable: 1 changesets
771 $ hg rebase -s 10 -d 12
784 $ hg rebase -s 10 -d 12
772 abort: this rebase will cause divergences from: 121d9e3bc4c6
785 abort: this rebase will cause divergences from: 121d9e3bc4c6
773 (to force the rebase please set experimental.allowdivergence=True)
786 (to force the rebase please set experimental.allowdivergence=True)
774 [255]
787 [255]
775 $ hg log -G
788 $ hg log -G
776 @ 15:73568ab6879d bar foo
789 @ 15:73568ab6879d bar foo
777 |
790 |
778 | o 14:77d874d096a2 10'
791 | o 14:77d874d096a2 10'
779 | |
792 | |
780 | | o 12:3eb461388009 john doe
793 | | o 12:3eb461388009 john doe
781 | |/
794 | |/
782 x | 10:121d9e3bc4c6 P
795 x | 10:121d9e3bc4c6 P
783 |/
796 |/
784 o 9:4be60e099a77 C
797 o 9:4be60e099a77 C
785 |
798 |
786 o 6:9c48361117de D
799 o 6:9c48361117de D
787 |
800 |
788 o 2:261e70097290 B2
801 o 2:261e70097290 B2
789 |
802 |
790 o 0:4a2df7238c3b A
803 o 0:4a2df7238c3b A
791
804
792 With experimental.allowdivergence=True, rebase can create divergence
805 With experimental.allowdivergence=True, rebase can create divergence
793
806
794 $ hg rebase -s 10 -d 12 --config experimental.allowdivergence=True
807 $ hg rebase -s 10 -d 12 --config experimental.allowdivergence=True
795 rebasing 10:121d9e3bc4c6 "P"
808 rebasing 10:121d9e3bc4c6 "P"
796 rebasing 15:73568ab6879d "bar foo" (tip)
809 rebasing 15:73568ab6879d "bar foo" (tip)
797 $ hg summary
810 $ hg summary
798 parent: 17:61bd55f69bc4 tip
811 parent: 17:61bd55f69bc4 tip
799 bar foo
812 bar foo
800 branch: default
813 branch: default
801 commit: (clean)
814 commit: (clean)
802 update: 1 new changesets, 2 branch heads (merge)
815 update: 1 new changesets, 2 branch heads (merge)
803 phases: 8 draft
816 phases: 8 draft
804 divergent: 2 changesets
817 divergent: 2 changesets
805
818
806 rebase --continue + skipped rev because their successors are in destination
819 rebase --continue + skipped rev because their successors are in destination
807 we make a change in trunk and work on conflicting changes to make rebase abort.
820 we make a change in trunk and work on conflicting changes to make rebase abort.
808
821
809 $ hg log -G -r 17::
822 $ hg log -G -r 17::
810 @ 17:61bd55f69bc4 bar foo
823 @ 17:61bd55f69bc4 bar foo
811 |
824 |
812 ~
825 ~
813
826
814 Create the two changes in trunk
827 Create the two changes in trunk
815 $ printf "a" > willconflict
828 $ printf "a" > willconflict
816 $ hg add willconflict
829 $ hg add willconflict
817 $ hg commit -m "willconflict first version"
830 $ hg commit -m "willconflict first version"
818
831
819 $ printf "dummy" > C
832 $ printf "dummy" > C
820 $ hg commit -m "dummy change successor"
833 $ hg commit -m "dummy change successor"
821
834
822 Create the changes that we will rebase
835 Create the changes that we will rebase
823 $ hg update -C 17 -q
836 $ hg update -C 17 -q
824 $ printf "b" > willconflict
837 $ printf "b" > willconflict
825 $ hg add willconflict
838 $ hg add willconflict
826 $ hg commit -m "willconflict second version"
839 $ hg commit -m "willconflict second version"
827 created new head
840 created new head
828 $ printf "dummy" > K
841 $ printf "dummy" > K
829 $ hg add K
842 $ hg add K
830 $ hg commit -m "dummy change"
843 $ hg commit -m "dummy change"
831 $ printf "dummy" > L
844 $ printf "dummy" > L
832 $ hg add L
845 $ hg add L
833 $ hg commit -m "dummy change"
846 $ hg commit -m "dummy change"
834 $ hg debugobsolete `hg log -r ".^" -T '{node}'` `hg log -r 19 -T '{node}'` --config experimental.evolution=all
847 $ hg debugobsolete `hg log -r ".^" -T '{node}'` `hg log -r 19 -T '{node}'` --config experimental.evolution=all
835
848
836 $ hg log -G -r 17::
849 $ hg log -G -r 17::
837 @ 22:7bdc8a87673d dummy change
850 @ 22:7bdc8a87673d dummy change
838 |
851 |
839 x 21:8b31da3c4919 dummy change
852 x 21:8b31da3c4919 dummy change
840 |
853 |
841 o 20:b82fb57ea638 willconflict second version
854 o 20:b82fb57ea638 willconflict second version
842 |
855 |
843 | o 19:601db7a18f51 dummy change successor
856 | o 19:601db7a18f51 dummy change successor
844 | |
857 | |
845 | o 18:357ddf1602d5 willconflict first version
858 | o 18:357ddf1602d5 willconflict first version
846 |/
859 |/
847 o 17:61bd55f69bc4 bar foo
860 o 17:61bd55f69bc4 bar foo
848 |
861 |
849 ~
862 ~
850 $ hg rebase -r ".^^ + .^ + ." -d 19
863 $ hg rebase -r ".^^ + .^ + ." -d 19
851 rebasing 20:b82fb57ea638 "willconflict second version"
864 rebasing 20:b82fb57ea638 "willconflict second version"
852 merging willconflict
865 merging willconflict
853 warning: conflicts while merging willconflict! (edit, then use 'hg resolve --mark')
866 warning: conflicts while merging willconflict! (edit, then use 'hg resolve --mark')
854 unresolved conflicts (see hg resolve, then hg rebase --continue)
867 unresolved conflicts (see hg resolve, then hg rebase --continue)
855 [1]
868 [1]
856
869
857 $ hg resolve --mark willconflict
870 $ hg resolve --mark willconflict
858 (no more unresolved files)
871 (no more unresolved files)
859 continue: hg rebase --continue
872 continue: hg rebase --continue
860 $ hg rebase --continue
873 $ hg rebase --continue
861 rebasing 20:b82fb57ea638 "willconflict second version"
874 rebasing 20:b82fb57ea638 "willconflict second version"
862 note: not rebasing 21:8b31da3c4919 "dummy change", already in destination as 19:601db7a18f51 "dummy change successor"
875 note: not rebasing 21:8b31da3c4919 "dummy change", already in destination as 19:601db7a18f51 "dummy change successor"
863 rebasing 22:7bdc8a87673d "dummy change" (tip)
876 rebasing 22:7bdc8a87673d "dummy change" (tip)
864 $ cd ..
877 $ cd ..
865
878
866 rebase source is obsoleted (issue5198)
879 rebase source is obsoleted (issue5198)
867 ---------------------------------
880 ---------------------------------
868
881
869 $ hg clone base amended
882 $ hg clone base amended
870 updating to branch default
883 updating to branch default
871 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
884 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
872 $ cd amended
885 $ cd amended
873 $ hg up 9520eea781bc
886 $ hg up 9520eea781bc
874 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
887 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
875 $ echo 1 >> E
888 $ echo 1 >> E
876 $ hg commit --amend -m "E'"
889 $ hg commit --amend -m "E'"
877 $ hg log -G
890 $ hg log -G
878 @ 9:69abe8906104 E'
891 @ 9:69abe8906104 E'
879 |
892 |
880 | o 7:02de42196ebe H
893 | o 7:02de42196ebe H
881 | |
894 | |
882 | | o 6:eea13746799a G
895 | | o 6:eea13746799a G
883 | |/|
896 | |/|
884 | o | 5:24b6387c8c8c F
897 | o | 5:24b6387c8c8c F
885 |/ /
898 |/ /
886 | x 4:9520eea781bc E
899 | x 4:9520eea781bc E
887 |/
900 |/
888 | o 3:32af7686d403 D
901 | o 3:32af7686d403 D
889 | |
902 | |
890 | o 2:5fddd98957c8 C
903 | o 2:5fddd98957c8 C
891 | |
904 | |
892 | o 1:42ccdea3bb16 B
905 | o 1:42ccdea3bb16 B
893 |/
906 |/
894 o 0:cd010b8cd998 A
907 o 0:cd010b8cd998 A
895
908
896 $ hg rebase -d . -s 9520eea781bc
909 $ hg rebase -d . -s 9520eea781bc
897 note: not rebasing 4:9520eea781bc "E", already in destination as 9:69abe8906104 "E'"
910 note: not rebasing 4:9520eea781bc "E", already in destination as 9:69abe8906104 "E'"
898 rebasing 6:eea13746799a "G"
911 rebasing 6:eea13746799a "G"
899 $ hg log -G
912 $ hg log -G
900 o 10:17be06e82e95 G
913 o 10:17be06e82e95 G
901 |\
914 |\
902 | @ 9:69abe8906104 E'
915 | @ 9:69abe8906104 E'
903 | |
916 | |
904 +---o 7:02de42196ebe H
917 +---o 7:02de42196ebe H
905 | |
918 | |
906 o | 5:24b6387c8c8c F
919 o | 5:24b6387c8c8c F
907 |/
920 |/
908 | o 3:32af7686d403 D
921 | o 3:32af7686d403 D
909 | |
922 | |
910 | o 2:5fddd98957c8 C
923 | o 2:5fddd98957c8 C
911 | |
924 | |
912 | o 1:42ccdea3bb16 B
925 | o 1:42ccdea3bb16 B
913 |/
926 |/
914 o 0:cd010b8cd998 A
927 o 0:cd010b8cd998 A
915
928
916 $ cd ..
929 $ cd ..
917
930
918 Test that bookmark is moved and working dir is updated when all changesets have
931 Test that bookmark is moved and working dir is updated when all changesets have
919 equivalents in destination
932 equivalents in destination
920 $ hg init rbsrepo && cd rbsrepo
933 $ hg init rbsrepo && cd rbsrepo
921 $ echo "[experimental]" > .hg/hgrc
934 $ echo "[experimental]" > .hg/hgrc
922 $ echo "evolution=all" >> .hg/hgrc
935 $ echo "evolution=all" >> .hg/hgrc
923 $ echo "rebaseskipobsolete=on" >> .hg/hgrc
936 $ echo "rebaseskipobsolete=on" >> .hg/hgrc
924 $ echo root > root && hg ci -Am root
937 $ echo root > root && hg ci -Am root
925 adding root
938 adding root
926 $ echo a > a && hg ci -Am a
939 $ echo a > a && hg ci -Am a
927 adding a
940 adding a
928 $ hg up 0
941 $ hg up 0
929 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
942 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
930 $ echo b > b && hg ci -Am b
943 $ echo b > b && hg ci -Am b
931 adding b
944 adding b
932 created new head
945 created new head
933 $ hg rebase -r 2 -d 1
946 $ hg rebase -r 2 -d 1
934 rebasing 2:1e9a3c00cbe9 "b" (tip)
947 rebasing 2:1e9a3c00cbe9 "b" (tip)
935 $ hg log -r . # working dir is at rev 3 (successor of 2)
948 $ hg log -r . # working dir is at rev 3 (successor of 2)
936 3:be1832deae9a b (no-eol)
949 3:be1832deae9a b (no-eol)
937 $ hg book -r 2 mybook --hidden # rev 2 has a bookmark on it now
950 $ hg book -r 2 mybook --hidden # rev 2 has a bookmark on it now
938 $ hg up 2 && hg log -r . # working dir is at rev 2 again
951 $ hg up 2 && hg log -r . # working dir is at rev 2 again
939 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
952 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
940 2:1e9a3c00cbe9 b (no-eol)
953 2:1e9a3c00cbe9 b (no-eol)
941 $ hg rebase -r 2 -d 3
954 $ hg rebase -r 2 -d 3
942 note: not rebasing 2:1e9a3c00cbe9 "b" (mybook), already in destination as 3:be1832deae9a "b"
955 note: not rebasing 2:1e9a3c00cbe9 "b" (mybook), already in destination as 3:be1832deae9a "b"
943 Check that working directory was updated to rev 3 although rev 2 was skipped
956 Check that working directory was updated to rev 3 although rev 2 was skipped
944 during the rebase operation
957 during the rebase operation
945 $ hg log -r .
958 $ hg log -r .
946 3:be1832deae9a b (no-eol)
959 3:be1832deae9a b (no-eol)
947
960
948 Check that bookmark was moved to rev 3 although rev 2 was skipped
961 Check that bookmark was moved to rev 3 although rev 2 was skipped
949 during the rebase operation
962 during the rebase operation
950 $ hg bookmarks
963 $ hg bookmarks
951 mybook 3:be1832deae9a
964 mybook 3:be1832deae9a
General Comments 0
You need to be logged in to leave comments. Login now