##// END OF EJS Templates
tests: show bad path auditing in in-memory rebase...
Martin von Zweigbergk -
r40851:d10b1dc1 stable
parent child Browse files
Show More
@@ -1,699 +1,725 b''
1 #require symlink execbit
1 #require symlink execbit
2 $ cat << EOF >> $HGRCPATH
2 $ cat << EOF >> $HGRCPATH
3 > [phases]
3 > [phases]
4 > publish=False
4 > publish=False
5 > [extensions]
5 > [extensions]
6 > amend=
6 > amend=
7 > rebase=
7 > rebase=
8 > debugdrawdag=$TESTDIR/drawdag.py
8 > debugdrawdag=$TESTDIR/drawdag.py
9 > strip=
9 > strip=
10 > [rebase]
10 > [rebase]
11 > experimental.inmemory=1
11 > experimental.inmemory=1
12 > [diff]
12 > [diff]
13 > git=1
13 > git=1
14 > [alias]
14 > [alias]
15 > tglog = log -G --template "{rev}: {node|short} '{desc}'\n"
15 > tglog = log -G --template "{rev}: {node|short} '{desc}'\n"
16 > EOF
16 > EOF
17
17
18 Rebase a simple DAG:
18 Rebase a simple DAG:
19 $ hg init repo1
19 $ hg init repo1
20 $ cd repo1
20 $ cd repo1
21 $ hg debugdrawdag <<'EOS'
21 $ hg debugdrawdag <<'EOS'
22 > c b
22 > c b
23 > |/
23 > |/
24 > d
24 > d
25 > |
25 > |
26 > a
26 > a
27 > EOS
27 > EOS
28 $ hg up -C a
28 $ hg up -C a
29 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
29 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
30 $ hg tglog
30 $ hg tglog
31 o 3: 814f6bd05178 'c'
31 o 3: 814f6bd05178 'c'
32 |
32 |
33 | o 2: db0e82a16a62 'b'
33 | o 2: db0e82a16a62 'b'
34 |/
34 |/
35 o 1: 02952614a83d 'd'
35 o 1: 02952614a83d 'd'
36 |
36 |
37 @ 0: b173517d0057 'a'
37 @ 0: b173517d0057 'a'
38
38
39 $ hg cat -r 3 c
39 $ hg cat -r 3 c
40 c (no-eol)
40 c (no-eol)
41 $ hg cat -r 2 b
41 $ hg cat -r 2 b
42 b (no-eol)
42 b (no-eol)
43 $ hg rebase --debug -r b -d c | grep rebasing
43 $ hg rebase --debug -r b -d c | grep rebasing
44 rebasing in-memory
44 rebasing in-memory
45 rebasing 2:db0e82a16a62 "b" (b)
45 rebasing 2:db0e82a16a62 "b" (b)
46 $ hg tglog
46 $ hg tglog
47 o 3: ca58782ad1e4 'b'
47 o 3: ca58782ad1e4 'b'
48 |
48 |
49 o 2: 814f6bd05178 'c'
49 o 2: 814f6bd05178 'c'
50 |
50 |
51 o 1: 02952614a83d 'd'
51 o 1: 02952614a83d 'd'
52 |
52 |
53 @ 0: b173517d0057 'a'
53 @ 0: b173517d0057 'a'
54
54
55 $ hg cat -r 3 b
55 $ hg cat -r 3 b
56 b (no-eol)
56 b (no-eol)
57 $ hg cat -r 2 c
57 $ hg cat -r 2 c
58 c (no-eol)
58 c (no-eol)
59 $ cd ..
59 $ cd ..
60
60
61 Case 2:
61 Case 2:
62 $ hg init repo2
62 $ hg init repo2
63 $ cd repo2
63 $ cd repo2
64 $ hg debugdrawdag <<'EOS'
64 $ hg debugdrawdag <<'EOS'
65 > c b
65 > c b
66 > |/
66 > |/
67 > d
67 > d
68 > |
68 > |
69 > a
69 > a
70 > EOS
70 > EOS
71
71
72 Add a symlink and executable file:
72 Add a symlink and executable file:
73 $ hg up -C c
73 $ hg up -C c
74 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
74 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
75 $ ln -s somefile e
75 $ ln -s somefile e
76 $ echo f > f
76 $ echo f > f
77 $ chmod +x f
77 $ chmod +x f
78 $ hg add e f
78 $ hg add e f
79 $ hg amend -q
79 $ hg amend -q
80 $ hg up -Cq a
80 $ hg up -Cq a
81
81
82 Write files to the working copy, and ensure they're still there after the rebase
82 Write files to the working copy, and ensure they're still there after the rebase
83 $ echo "abc" > a
83 $ echo "abc" > a
84 $ ln -s def b
84 $ ln -s def b
85 $ echo "ghi" > c
85 $ echo "ghi" > c
86 $ echo "jkl" > d
86 $ echo "jkl" > d
87 $ echo "mno" > e
87 $ echo "mno" > e
88 $ hg tglog
88 $ hg tglog
89 o 3: f56b71190a8f 'c'
89 o 3: f56b71190a8f 'c'
90 |
90 |
91 | o 2: db0e82a16a62 'b'
91 | o 2: db0e82a16a62 'b'
92 |/
92 |/
93 o 1: 02952614a83d 'd'
93 o 1: 02952614a83d 'd'
94 |
94 |
95 @ 0: b173517d0057 'a'
95 @ 0: b173517d0057 'a'
96
96
97 $ hg cat -r 3 c
97 $ hg cat -r 3 c
98 c (no-eol)
98 c (no-eol)
99 $ hg cat -r 2 b
99 $ hg cat -r 2 b
100 b (no-eol)
100 b (no-eol)
101 $ hg cat -r 3 e
101 $ hg cat -r 3 e
102 somefile (no-eol)
102 somefile (no-eol)
103 $ hg rebase --debug -s b -d a | grep rebasing
103 $ hg rebase --debug -s b -d a | grep rebasing
104 rebasing in-memory
104 rebasing in-memory
105 rebasing 2:db0e82a16a62 "b" (b)
105 rebasing 2:db0e82a16a62 "b" (b)
106 $ hg tglog
106 $ hg tglog
107 o 3: fc055c3b4d33 'b'
107 o 3: fc055c3b4d33 'b'
108 |
108 |
109 | o 2: f56b71190a8f 'c'
109 | o 2: f56b71190a8f 'c'
110 | |
110 | |
111 | o 1: 02952614a83d 'd'
111 | o 1: 02952614a83d 'd'
112 |/
112 |/
113 @ 0: b173517d0057 'a'
113 @ 0: b173517d0057 'a'
114
114
115 $ hg cat -r 2 c
115 $ hg cat -r 2 c
116 c (no-eol)
116 c (no-eol)
117 $ hg cat -r 3 b
117 $ hg cat -r 3 b
118 b (no-eol)
118 b (no-eol)
119 $ hg rebase --debug -s 1 -d 3 | grep rebasing
119 $ hg rebase --debug -s 1 -d 3 | grep rebasing
120 rebasing in-memory
120 rebasing in-memory
121 rebasing 1:02952614a83d "d" (d)
121 rebasing 1:02952614a83d "d" (d)
122 rebasing 2:f56b71190a8f "c"
122 rebasing 2:f56b71190a8f "c"
123 $ hg tglog
123 $ hg tglog
124 o 3: 753feb6fd12a 'c'
124 o 3: 753feb6fd12a 'c'
125 |
125 |
126 o 2: 09c044d2cb43 'd'
126 o 2: 09c044d2cb43 'd'
127 |
127 |
128 o 1: fc055c3b4d33 'b'
128 o 1: fc055c3b4d33 'b'
129 |
129 |
130 @ 0: b173517d0057 'a'
130 @ 0: b173517d0057 'a'
131
131
132 Ensure working copy files are still there:
132 Ensure working copy files are still there:
133 $ cat a
133 $ cat a
134 abc
134 abc
135 $ readlink.py b
135 $ readlink.py b
136 b -> def
136 b -> def
137 $ cat e
137 $ cat e
138 mno
138 mno
139
139
140 Ensure symlink and executable files were rebased properly:
140 Ensure symlink and executable files were rebased properly:
141 $ hg up -Cq 3
141 $ hg up -Cq 3
142 $ readlink.py e
142 $ readlink.py e
143 e -> somefile
143 e -> somefile
144 $ ls -l f | cut -c -10
144 $ ls -l f | cut -c -10
145 -rwxr-xr-x
145 -rwxr-xr-x
146
146
147 Rebase the working copy parent
147 Rebase the working copy parent
148 $ hg up -C 3
148 $ hg up -C 3
149 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
149 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
150 $ hg rebase -r 3 -d 0 --debug | grep rebasing
150 $ hg rebase -r 3 -d 0 --debug | grep rebasing
151 rebasing in-memory
151 rebasing in-memory
152 rebasing 3:753feb6fd12a "c" (tip)
152 rebasing 3:753feb6fd12a "c" (tip)
153 $ hg tglog
153 $ hg tglog
154 @ 3: 844a7de3e617 'c'
154 @ 3: 844a7de3e617 'c'
155 |
155 |
156 | o 2: 09c044d2cb43 'd'
156 | o 2: 09c044d2cb43 'd'
157 | |
157 | |
158 | o 1: fc055c3b4d33 'b'
158 | o 1: fc055c3b4d33 'b'
159 |/
159 |/
160 o 0: b173517d0057 'a'
160 o 0: b173517d0057 'a'
161
161
162
162
163 Test reporting of path conflicts
163 Test reporting of path conflicts
164
164
165 $ hg rm a
165 $ hg rm a
166 $ mkdir a
166 $ mkdir a
167 $ touch a/a
167 $ touch a/a
168 $ hg ci -Am "a/a"
168 $ hg ci -Am "a/a"
169 adding a/a
169 adding a/a
170 $ hg tglog
170 $ hg tglog
171 @ 4: daf7dfc139cb 'a/a'
171 @ 4: daf7dfc139cb 'a/a'
172 |
172 |
173 o 3: 844a7de3e617 'c'
173 o 3: 844a7de3e617 'c'
174 |
174 |
175 | o 2: 09c044d2cb43 'd'
175 | o 2: 09c044d2cb43 'd'
176 | |
176 | |
177 | o 1: fc055c3b4d33 'b'
177 | o 1: fc055c3b4d33 'b'
178 |/
178 |/
179 o 0: b173517d0057 'a'
179 o 0: b173517d0057 'a'
180
180
181 $ hg rebase -r . -d 2
181 $ hg rebase -r . -d 2
182 rebasing 4:daf7dfc139cb "a/a" (tip)
182 rebasing 4:daf7dfc139cb "a/a" (tip)
183 saved backup bundle to $TESTTMP/repo2/.hg/strip-backup/daf7dfc139cb-fdbfcf4f-rebase.hg
183 saved backup bundle to $TESTTMP/repo2/.hg/strip-backup/daf7dfc139cb-fdbfcf4f-rebase.hg
184
184
185 $ hg tglog
185 $ hg tglog
186 @ 4: c6ad37a4f250 'a/a'
186 @ 4: c6ad37a4f250 'a/a'
187 |
187 |
188 | o 3: 844a7de3e617 'c'
188 | o 3: 844a7de3e617 'c'
189 | |
189 | |
190 o | 2: 09c044d2cb43 'd'
190 o | 2: 09c044d2cb43 'd'
191 | |
191 | |
192 o | 1: fc055c3b4d33 'b'
192 o | 1: fc055c3b4d33 'b'
193 |/
193 |/
194 o 0: b173517d0057 'a'
194 o 0: b173517d0057 'a'
195
195
196 $ echo foo > foo
196 $ echo foo > foo
197 $ hg ci -Aqm "added foo"
197 $ hg ci -Aqm "added foo"
198 $ hg up '.^'
198 $ hg up '.^'
199 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
199 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
200 $ echo bar > bar
200 $ echo bar > bar
201 $ hg ci -Aqm "added bar"
201 $ hg ci -Aqm "added bar"
202 $ hg rm a/a
202 $ hg rm a/a
203 $ echo a > a
203 $ echo a > a
204 $ hg ci -Aqm "added a back!"
204 $ hg ci -Aqm "added a back!"
205 $ hg tglog
205 $ hg tglog
206 @ 7: 855e9797387e 'added a back!'
206 @ 7: 855e9797387e 'added a back!'
207 |
207 |
208 o 6: d14530e5e3e6 'added bar'
208 o 6: d14530e5e3e6 'added bar'
209 |
209 |
210 | o 5: 9b94b9373deb 'added foo'
210 | o 5: 9b94b9373deb 'added foo'
211 |/
211 |/
212 o 4: c6ad37a4f250 'a/a'
212 o 4: c6ad37a4f250 'a/a'
213 |
213 |
214 | o 3: 844a7de3e617 'c'
214 | o 3: 844a7de3e617 'c'
215 | |
215 | |
216 o | 2: 09c044d2cb43 'd'
216 o | 2: 09c044d2cb43 'd'
217 | |
217 | |
218 o | 1: fc055c3b4d33 'b'
218 o | 1: fc055c3b4d33 'b'
219 |/
219 |/
220 o 0: b173517d0057 'a'
220 o 0: b173517d0057 'a'
221
221
222 $ hg rebase -r . -d 5
222 $ hg rebase -r . -d 5
223 rebasing 7:855e9797387e "added a back!" (tip)
223 rebasing 7:855e9797387e "added a back!" (tip)
224 saved backup bundle to $TESTTMP/repo2/.hg/strip-backup/855e9797387e-81ee4c5d-rebase.hg
224 saved backup bundle to $TESTTMP/repo2/.hg/strip-backup/855e9797387e-81ee4c5d-rebase.hg
225
225
226 $ hg tglog
226 $ hg tglog
227 @ 7: bb3f02be2688 'added a back!'
227 @ 7: bb3f02be2688 'added a back!'
228 |
228 |
229 | o 6: d14530e5e3e6 'added bar'
229 | o 6: d14530e5e3e6 'added bar'
230 | |
230 | |
231 o | 5: 9b94b9373deb 'added foo'
231 o | 5: 9b94b9373deb 'added foo'
232 |/
232 |/
233 o 4: c6ad37a4f250 'a/a'
233 o 4: c6ad37a4f250 'a/a'
234 |
234 |
235 | o 3: 844a7de3e617 'c'
235 | o 3: 844a7de3e617 'c'
236 | |
236 | |
237 o | 2: 09c044d2cb43 'd'
237 o | 2: 09c044d2cb43 'd'
238 | |
238 | |
239 o | 1: fc055c3b4d33 'b'
239 o | 1: fc055c3b4d33 'b'
240 |/
240 |/
241 o 0: b173517d0057 'a'
241 o 0: b173517d0057 'a'
242
242
243 $ mkdir c
243 $ mkdir c
244 $ echo c > c/c
244 $ echo c > c/c
245 $ hg add c/c
245 $ hg add c/c
246 $ hg ci -m 'c/c'
246 $ hg ci -m 'c/c'
247 $ hg rebase -r . -d 3 -n
247 $ hg rebase -r . -d 3 -n
248 starting dry-run rebase; repository will not be changed
248 starting dry-run rebase; repository will not be changed
249 rebasing 8:755f0104af9b "c/c" (tip)
249 rebasing 8:755f0104af9b "c/c" (tip)
250 abort: error: 'c/c' conflicts with file 'c' in 3.
250 abort: error: 'c/c' conflicts with file 'c' in 3.
251 [255]
251 [255]
252 $ hg rebase -r 3 -d . -n
252 $ hg rebase -r 3 -d . -n
253 starting dry-run rebase; repository will not be changed
253 starting dry-run rebase; repository will not be changed
254 rebasing 3:844a7de3e617 "c"
254 rebasing 3:844a7de3e617 "c"
255 abort: error: file 'c' cannot be written because 'c/' is a folder in 755f0104af9b (containing 1 entries: c/c)
255 abort: error: file 'c' cannot be written because 'c/' is a folder in 755f0104af9b (containing 1 entries: c/c)
256 [255]
256 [255]
257
257
258 $ cd ..
258 $ cd ..
259
259
260 Test path auditing (issue5818)
261
262 $ mkdir lib_
263 $ ln -s lib_ lib
264 $ hg init repo
265 $ cd repo
266 $ mkdir -p ".$TESTTMP/lib"
267 $ touch ".$TESTTMP/lib/a"
268 $ hg add ".$TESTTMP/lib/a"
269 $ hg ci -m 'a'
270
271 $ touch ".$TESTTMP/lib/b"
272 $ hg add ".$TESTTMP/lib/b"
273 $ hg ci -m 'b'
274
275 $ hg up -q '.^'
276 $ touch ".$TESTTMP/lib/c"
277 $ hg add ".$TESTTMP/lib/c"
278 $ hg ci -m 'c'
279 created new head
280 $ hg rebase -s 1 -d .
281 rebasing 1:* "b" (glob)
282 abort: path '*/lib/b' traverses symbolic link '*/lib' (glob)
283 [255]
284 $ cd ..
285
260 Test dry-run rebasing
286 Test dry-run rebasing
261
287
262 $ hg init repo3
288 $ hg init repo3
263 $ cd repo3
289 $ cd repo3
264 $ echo a>a
290 $ echo a>a
265 $ hg ci -Aqma
291 $ hg ci -Aqma
266 $ echo b>b
292 $ echo b>b
267 $ hg ci -Aqmb
293 $ hg ci -Aqmb
268 $ echo c>c
294 $ echo c>c
269 $ hg ci -Aqmc
295 $ hg ci -Aqmc
270 $ echo d>d
296 $ echo d>d
271 $ hg ci -Aqmd
297 $ hg ci -Aqmd
272 $ echo e>e
298 $ echo e>e
273 $ hg ci -Aqme
299 $ hg ci -Aqme
274
300
275 $ hg up 1 -q
301 $ hg up 1 -q
276 $ echo f>f
302 $ echo f>f
277 $ hg ci -Amf
303 $ hg ci -Amf
278 adding f
304 adding f
279 created new head
305 created new head
280 $ echo g>g
306 $ echo g>g
281 $ hg ci -Aqmg
307 $ hg ci -Aqmg
282 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
308 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
283 @ 6:baf10c5166d4 test
309 @ 6:baf10c5166d4 test
284 | g
310 | g
285 |
311 |
286 o 5:6343ca3eff20 test
312 o 5:6343ca3eff20 test
287 | f
313 | f
288 |
314 |
289 | o 4:e860deea161a test
315 | o 4:e860deea161a test
290 | | e
316 | | e
291 | |
317 | |
292 | o 3:055a42cdd887 test
318 | o 3:055a42cdd887 test
293 | | d
319 | | d
294 | |
320 | |
295 | o 2:177f92b77385 test
321 | o 2:177f92b77385 test
296 |/ c
322 |/ c
297 |
323 |
298 o 1:d2ae7f538514 test
324 o 1:d2ae7f538514 test
299 | b
325 | b
300 |
326 |
301 o 0:cb9a9f314b8b test
327 o 0:cb9a9f314b8b test
302 a
328 a
303
329
304 Make sure it throws error while passing --continue or --abort with --dry-run
330 Make sure it throws error while passing --continue or --abort with --dry-run
305 $ hg rebase -s 2 -d 6 -n --continue
331 $ hg rebase -s 2 -d 6 -n --continue
306 abort: cannot specify both --dry-run and --continue
332 abort: cannot specify both --dry-run and --continue
307 [255]
333 [255]
308 $ hg rebase -s 2 -d 6 -n --abort
334 $ hg rebase -s 2 -d 6 -n --abort
309 abort: cannot specify both --dry-run and --abort
335 abort: cannot specify both --dry-run and --abort
310 [255]
336 [255]
311
337
312 Check dryrun gives correct results when there is no conflict in rebasing
338 Check dryrun gives correct results when there is no conflict in rebasing
313 $ hg rebase -s 2 -d 6 -n
339 $ hg rebase -s 2 -d 6 -n
314 starting dry-run rebase; repository will not be changed
340 starting dry-run rebase; repository will not be changed
315 rebasing 2:177f92b77385 "c"
341 rebasing 2:177f92b77385 "c"
316 rebasing 3:055a42cdd887 "d"
342 rebasing 3:055a42cdd887 "d"
317 rebasing 4:e860deea161a "e"
343 rebasing 4:e860deea161a "e"
318 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
344 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
319
345
320 $ hg diff
346 $ hg diff
321 $ hg status
347 $ hg status
322
348
323 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
349 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
324 @ 6:baf10c5166d4 test
350 @ 6:baf10c5166d4 test
325 | g
351 | g
326 |
352 |
327 o 5:6343ca3eff20 test
353 o 5:6343ca3eff20 test
328 | f
354 | f
329 |
355 |
330 | o 4:e860deea161a test
356 | o 4:e860deea161a test
331 | | e
357 | | e
332 | |
358 | |
333 | o 3:055a42cdd887 test
359 | o 3:055a42cdd887 test
334 | | d
360 | | d
335 | |
361 | |
336 | o 2:177f92b77385 test
362 | o 2:177f92b77385 test
337 |/ c
363 |/ c
338 |
364 |
339 o 1:d2ae7f538514 test
365 o 1:d2ae7f538514 test
340 | b
366 | b
341 |
367 |
342 o 0:cb9a9f314b8b test
368 o 0:cb9a9f314b8b test
343 a
369 a
344
370
345 Check dryrun working with --collapse when there is no conflict
371 Check dryrun working with --collapse when there is no conflict
346 $ hg rebase -s 2 -d 6 -n --collapse
372 $ hg rebase -s 2 -d 6 -n --collapse
347 starting dry-run rebase; repository will not be changed
373 starting dry-run rebase; repository will not be changed
348 rebasing 2:177f92b77385 "c"
374 rebasing 2:177f92b77385 "c"
349 rebasing 3:055a42cdd887 "d"
375 rebasing 3:055a42cdd887 "d"
350 rebasing 4:e860deea161a "e"
376 rebasing 4:e860deea161a "e"
351 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
377 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
352
378
353 Check dryrun gives correct results when there is conflict in rebasing
379 Check dryrun gives correct results when there is conflict in rebasing
354 Make a conflict:
380 Make a conflict:
355 $ hg up 6 -q
381 $ hg up 6 -q
356 $ echo conflict>e
382 $ echo conflict>e
357 $ hg ci -Aqm "conflict with e"
383 $ hg ci -Aqm "conflict with e"
358 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
384 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
359 @ 7:d2c195b28050 test
385 @ 7:d2c195b28050 test
360 | conflict with e
386 | conflict with e
361 |
387 |
362 o 6:baf10c5166d4 test
388 o 6:baf10c5166d4 test
363 | g
389 | g
364 |
390 |
365 o 5:6343ca3eff20 test
391 o 5:6343ca3eff20 test
366 | f
392 | f
367 |
393 |
368 | o 4:e860deea161a test
394 | o 4:e860deea161a test
369 | | e
395 | | e
370 | |
396 | |
371 | o 3:055a42cdd887 test
397 | o 3:055a42cdd887 test
372 | | d
398 | | d
373 | |
399 | |
374 | o 2:177f92b77385 test
400 | o 2:177f92b77385 test
375 |/ c
401 |/ c
376 |
402 |
377 o 1:d2ae7f538514 test
403 o 1:d2ae7f538514 test
378 | b
404 | b
379 |
405 |
380 o 0:cb9a9f314b8b test
406 o 0:cb9a9f314b8b test
381 a
407 a
382
408
383 $ hg rebase -s 2 -d 7 -n
409 $ hg rebase -s 2 -d 7 -n
384 starting dry-run rebase; repository will not be changed
410 starting dry-run rebase; repository will not be changed
385 rebasing 2:177f92b77385 "c"
411 rebasing 2:177f92b77385 "c"
386 rebasing 3:055a42cdd887 "d"
412 rebasing 3:055a42cdd887 "d"
387 rebasing 4:e860deea161a "e"
413 rebasing 4:e860deea161a "e"
388 merging e
414 merging e
389 transaction abort!
415 transaction abort!
390 rollback completed
416 rollback completed
391 hit a merge conflict
417 hit a merge conflict
392 [1]
418 [1]
393 $ hg diff
419 $ hg diff
394 $ hg status
420 $ hg status
395 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
421 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
396 @ 7:d2c195b28050 test
422 @ 7:d2c195b28050 test
397 | conflict with e
423 | conflict with e
398 |
424 |
399 o 6:baf10c5166d4 test
425 o 6:baf10c5166d4 test
400 | g
426 | g
401 |
427 |
402 o 5:6343ca3eff20 test
428 o 5:6343ca3eff20 test
403 | f
429 | f
404 |
430 |
405 | o 4:e860deea161a test
431 | o 4:e860deea161a test
406 | | e
432 | | e
407 | |
433 | |
408 | o 3:055a42cdd887 test
434 | o 3:055a42cdd887 test
409 | | d
435 | | d
410 | |
436 | |
411 | o 2:177f92b77385 test
437 | o 2:177f92b77385 test
412 |/ c
438 |/ c
413 |
439 |
414 o 1:d2ae7f538514 test
440 o 1:d2ae7f538514 test
415 | b
441 | b
416 |
442 |
417 o 0:cb9a9f314b8b test
443 o 0:cb9a9f314b8b test
418 a
444 a
419
445
420 Check dryrun working with --collapse when there is conflicts
446 Check dryrun working with --collapse when there is conflicts
421 $ hg rebase -s 2 -d 7 -n --collapse
447 $ hg rebase -s 2 -d 7 -n --collapse
422 starting dry-run rebase; repository will not be changed
448 starting dry-run rebase; repository will not be changed
423 rebasing 2:177f92b77385 "c"
449 rebasing 2:177f92b77385 "c"
424 rebasing 3:055a42cdd887 "d"
450 rebasing 3:055a42cdd887 "d"
425 rebasing 4:e860deea161a "e"
451 rebasing 4:e860deea161a "e"
426 merging e
452 merging e
427 hit a merge conflict
453 hit a merge conflict
428 [1]
454 [1]
429
455
430 In-memory rebase that fails due to merge conflicts
456 In-memory rebase that fails due to merge conflicts
431
457
432 $ hg rebase -s 2 -d 7
458 $ hg rebase -s 2 -d 7
433 rebasing 2:177f92b77385 "c"
459 rebasing 2:177f92b77385 "c"
434 rebasing 3:055a42cdd887 "d"
460 rebasing 3:055a42cdd887 "d"
435 rebasing 4:e860deea161a "e"
461 rebasing 4:e860deea161a "e"
436 merging e
462 merging e
437 transaction abort!
463 transaction abort!
438 rollback completed
464 rollback completed
439 hit merge conflicts; re-running rebase without in-memory merge
465 hit merge conflicts; re-running rebase without in-memory merge
440 rebasing 2:177f92b77385 "c"
466 rebasing 2:177f92b77385 "c"
441 rebasing 3:055a42cdd887 "d"
467 rebasing 3:055a42cdd887 "d"
442 rebasing 4:e860deea161a "e"
468 rebasing 4:e860deea161a "e"
443 merging e
469 merging e
444 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
470 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
445 unresolved conflicts (see hg resolve, then hg rebase --continue)
471 unresolved conflicts (see hg resolve, then hg rebase --continue)
446 [1]
472 [1]
447 $ hg rebase --abort
473 $ hg rebase --abort
448 saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/c1e524d4287c-f91f82e1-backup.hg
474 saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/c1e524d4287c-f91f82e1-backup.hg
449 rebase aborted
475 rebase aborted
450
476
451 Retrying without in-memory merge won't lose working copy changes
477 Retrying without in-memory merge won't lose working copy changes
452 $ cd ..
478 $ cd ..
453 $ hg clone repo3 repo3-dirty -q
479 $ hg clone repo3 repo3-dirty -q
454 $ cd repo3-dirty
480 $ cd repo3-dirty
455 $ echo dirty > a
481 $ echo dirty > a
456 $ hg rebase -s 2 -d 7
482 $ hg rebase -s 2 -d 7
457 rebasing 2:177f92b77385 "c"
483 rebasing 2:177f92b77385 "c"
458 rebasing 3:055a42cdd887 "d"
484 rebasing 3:055a42cdd887 "d"
459 rebasing 4:e860deea161a "e"
485 rebasing 4:e860deea161a "e"
460 merging e
486 merging e
461 transaction abort!
487 transaction abort!
462 rollback completed
488 rollback completed
463 hit merge conflicts; re-running rebase without in-memory merge
489 hit merge conflicts; re-running rebase without in-memory merge
464 abort: uncommitted changes
490 abort: uncommitted changes
465 [255]
491 [255]
466 $ cat a
492 $ cat a
467 dirty
493 dirty
468
494
469 Retrying without in-memory merge won't lose merge state
495 Retrying without in-memory merge won't lose merge state
470 $ cd ..
496 $ cd ..
471 $ hg clone repo3 repo3-merge-state -q
497 $ hg clone repo3 repo3-merge-state -q
472 $ cd repo3-merge-state
498 $ cd repo3-merge-state
473 $ hg merge 4
499 $ hg merge 4
474 merging e
500 merging e
475 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
501 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
476 2 files updated, 0 files merged, 0 files removed, 1 files unresolved
502 2 files updated, 0 files merged, 0 files removed, 1 files unresolved
477 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
503 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
478 [1]
504 [1]
479 $ hg resolve -l
505 $ hg resolve -l
480 U e
506 U e
481 $ hg rebase -s 2 -d 7
507 $ hg rebase -s 2 -d 7
482 rebasing 2:177f92b77385 "c"
508 rebasing 2:177f92b77385 "c"
483 abort: outstanding merge conflicts
509 abort: outstanding merge conflicts
484 [255]
510 [255]
485 $ hg resolve -l
511 $ hg resolve -l
486 U e
512 U e
487
513
488 ==========================
514 ==========================
489 Test for --confirm option|
515 Test for --confirm option|
490 ==========================
516 ==========================
491 $ cd ..
517 $ cd ..
492 $ hg clone repo3 repo4 -q
518 $ hg clone repo3 repo4 -q
493 $ cd repo4
519 $ cd repo4
494 $ hg strip 7 -q
520 $ hg strip 7 -q
495 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
521 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
496 @ 6:baf10c5166d4 test
522 @ 6:baf10c5166d4 test
497 | g
523 | g
498 |
524 |
499 o 5:6343ca3eff20 test
525 o 5:6343ca3eff20 test
500 | f
526 | f
501 |
527 |
502 | o 4:e860deea161a test
528 | o 4:e860deea161a test
503 | | e
529 | | e
504 | |
530 | |
505 | o 3:055a42cdd887 test
531 | o 3:055a42cdd887 test
506 | | d
532 | | d
507 | |
533 | |
508 | o 2:177f92b77385 test
534 | o 2:177f92b77385 test
509 |/ c
535 |/ c
510 |
536 |
511 o 1:d2ae7f538514 test
537 o 1:d2ae7f538514 test
512 | b
538 | b
513 |
539 |
514 o 0:cb9a9f314b8b test
540 o 0:cb9a9f314b8b test
515 a
541 a
516
542
517 Check it gives error when both --dryrun and --confirm is used:
543 Check it gives error when both --dryrun and --confirm is used:
518 $ hg rebase -s 2 -d . --confirm --dry-run
544 $ hg rebase -s 2 -d . --confirm --dry-run
519 abort: cannot specify both --confirm and --dry-run
545 abort: cannot specify both --confirm and --dry-run
520 [255]
546 [255]
521 $ hg rebase -s 2 -d . --confirm --abort
547 $ hg rebase -s 2 -d . --confirm --abort
522 abort: cannot specify both --confirm and --abort
548 abort: cannot specify both --confirm and --abort
523 [255]
549 [255]
524 $ hg rebase -s 2 -d . --confirm --continue
550 $ hg rebase -s 2 -d . --confirm --continue
525 abort: cannot specify both --confirm and --continue
551 abort: cannot specify both --confirm and --continue
526 [255]
552 [255]
527
553
528 Test --confirm option when there are no conflicts:
554 Test --confirm option when there are no conflicts:
529 $ hg rebase -s 2 -d . --keep --config ui.interactive=True --confirm << EOF
555 $ hg rebase -s 2 -d . --keep --config ui.interactive=True --confirm << EOF
530 > n
556 > n
531 > EOF
557 > EOF
532 starting in-memory rebase
558 starting in-memory rebase
533 rebasing 2:177f92b77385 "c"
559 rebasing 2:177f92b77385 "c"
534 rebasing 3:055a42cdd887 "d"
560 rebasing 3:055a42cdd887 "d"
535 rebasing 4:e860deea161a "e"
561 rebasing 4:e860deea161a "e"
536 rebase completed successfully
562 rebase completed successfully
537 apply changes (yn)? n
563 apply changes (yn)? n
538 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
564 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
539 @ 6:baf10c5166d4 test
565 @ 6:baf10c5166d4 test
540 | g
566 | g
541 |
567 |
542 o 5:6343ca3eff20 test
568 o 5:6343ca3eff20 test
543 | f
569 | f
544 |
570 |
545 | o 4:e860deea161a test
571 | o 4:e860deea161a test
546 | | e
572 | | e
547 | |
573 | |
548 | o 3:055a42cdd887 test
574 | o 3:055a42cdd887 test
549 | | d
575 | | d
550 | |
576 | |
551 | o 2:177f92b77385 test
577 | o 2:177f92b77385 test
552 |/ c
578 |/ c
553 |
579 |
554 o 1:d2ae7f538514 test
580 o 1:d2ae7f538514 test
555 | b
581 | b
556 |
582 |
557 o 0:cb9a9f314b8b test
583 o 0:cb9a9f314b8b test
558 a
584 a
559
585
560 $ hg rebase -s 2 -d . --keep --config ui.interactive=True --confirm << EOF
586 $ hg rebase -s 2 -d . --keep --config ui.interactive=True --confirm << EOF
561 > y
587 > y
562 > EOF
588 > EOF
563 starting in-memory rebase
589 starting in-memory rebase
564 rebasing 2:177f92b77385 "c"
590 rebasing 2:177f92b77385 "c"
565 rebasing 3:055a42cdd887 "d"
591 rebasing 3:055a42cdd887 "d"
566 rebasing 4:e860deea161a "e"
592 rebasing 4:e860deea161a "e"
567 rebase completed successfully
593 rebase completed successfully
568 apply changes (yn)? y
594 apply changes (yn)? y
569 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
595 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
570 o 9:9fd28f55f6dc test
596 o 9:9fd28f55f6dc test
571 | e
597 | e
572 |
598 |
573 o 8:12cbf031f469 test
599 o 8:12cbf031f469 test
574 | d
600 | d
575 |
601 |
576 o 7:c83b1da5b1ae test
602 o 7:c83b1da5b1ae test
577 | c
603 | c
578 |
604 |
579 @ 6:baf10c5166d4 test
605 @ 6:baf10c5166d4 test
580 | g
606 | g
581 |
607 |
582 o 5:6343ca3eff20 test
608 o 5:6343ca3eff20 test
583 | f
609 | f
584 |
610 |
585 | o 4:e860deea161a test
611 | o 4:e860deea161a test
586 | | e
612 | | e
587 | |
613 | |
588 | o 3:055a42cdd887 test
614 | o 3:055a42cdd887 test
589 | | d
615 | | d
590 | |
616 | |
591 | o 2:177f92b77385 test
617 | o 2:177f92b77385 test
592 |/ c
618 |/ c
593 |
619 |
594 o 1:d2ae7f538514 test
620 o 1:d2ae7f538514 test
595 | b
621 | b
596 |
622 |
597 o 0:cb9a9f314b8b test
623 o 0:cb9a9f314b8b test
598 a
624 a
599
625
600 Test --confirm option when there is a conflict
626 Test --confirm option when there is a conflict
601 $ hg up tip -q
627 $ hg up tip -q
602 $ echo ee>e
628 $ echo ee>e
603 $ hg ci --amend -m "conflict with e" -q
629 $ hg ci --amend -m "conflict with e" -q
604 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
630 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
605 @ 9:906d72f66a59 test
631 @ 9:906d72f66a59 test
606 | conflict with e
632 | conflict with e
607 |
633 |
608 o 8:12cbf031f469 test
634 o 8:12cbf031f469 test
609 | d
635 | d
610 |
636 |
611 o 7:c83b1da5b1ae test
637 o 7:c83b1da5b1ae test
612 | c
638 | c
613 |
639 |
614 o 6:baf10c5166d4 test
640 o 6:baf10c5166d4 test
615 | g
641 | g
616 |
642 |
617 o 5:6343ca3eff20 test
643 o 5:6343ca3eff20 test
618 | f
644 | f
619 |
645 |
620 | o 4:e860deea161a test
646 | o 4:e860deea161a test
621 | | e
647 | | e
622 | |
648 | |
623 | o 3:055a42cdd887 test
649 | o 3:055a42cdd887 test
624 | | d
650 | | d
625 | |
651 | |
626 | o 2:177f92b77385 test
652 | o 2:177f92b77385 test
627 |/ c
653 |/ c
628 |
654 |
629 o 1:d2ae7f538514 test
655 o 1:d2ae7f538514 test
630 | b
656 | b
631 |
657 |
632 o 0:cb9a9f314b8b test
658 o 0:cb9a9f314b8b test
633 a
659 a
634
660
635 $ hg rebase -s 4 -d . --keep --confirm
661 $ hg rebase -s 4 -d . --keep --confirm
636 starting in-memory rebase
662 starting in-memory rebase
637 rebasing 4:e860deea161a "e"
663 rebasing 4:e860deea161a "e"
638 merging e
664 merging e
639 hit a merge conflict
665 hit a merge conflict
640 [1]
666 [1]
641 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
667 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
642 @ 9:906d72f66a59 test
668 @ 9:906d72f66a59 test
643 | conflict with e
669 | conflict with e
644 |
670 |
645 o 8:12cbf031f469 test
671 o 8:12cbf031f469 test
646 | d
672 | d
647 |
673 |
648 o 7:c83b1da5b1ae test
674 o 7:c83b1da5b1ae test
649 | c
675 | c
650 |
676 |
651 o 6:baf10c5166d4 test
677 o 6:baf10c5166d4 test
652 | g
678 | g
653 |
679 |
654 o 5:6343ca3eff20 test
680 o 5:6343ca3eff20 test
655 | f
681 | f
656 |
682 |
657 | o 4:e860deea161a test
683 | o 4:e860deea161a test
658 | | e
684 | | e
659 | |
685 | |
660 | o 3:055a42cdd887 test
686 | o 3:055a42cdd887 test
661 | | d
687 | | d
662 | |
688 | |
663 | o 2:177f92b77385 test
689 | o 2:177f92b77385 test
664 |/ c
690 |/ c
665 |
691 |
666 o 1:d2ae7f538514 test
692 o 1:d2ae7f538514 test
667 | b
693 | b
668 |
694 |
669 o 0:cb9a9f314b8b test
695 o 0:cb9a9f314b8b test
670 a
696 a
671
697
672 #if execbit
698 #if execbit
673
699
674 Test a metadata-only in-memory merge
700 Test a metadata-only in-memory merge
675 $ cd $TESTTMP
701 $ cd $TESTTMP
676 $ hg init no_exception
702 $ hg init no_exception
677 $ cd no_exception
703 $ cd no_exception
678 # Produce the following graph:
704 # Produce the following graph:
679 # o 'add +x to foo.txt'
705 # o 'add +x to foo.txt'
680 # | o r1 (adds bar.txt, just for something to rebase to)
706 # | o r1 (adds bar.txt, just for something to rebase to)
681 # |/
707 # |/
682 # o r0 (adds foo.txt, no +x)
708 # o r0 (adds foo.txt, no +x)
683 $ echo hi > foo.txt
709 $ echo hi > foo.txt
684 $ hg ci -qAm r0
710 $ hg ci -qAm r0
685 $ echo hi > bar.txt
711 $ echo hi > bar.txt
686 $ hg ci -qAm r1
712 $ hg ci -qAm r1
687 $ hg co -qr ".^"
713 $ hg co -qr ".^"
688 $ chmod +x foo.txt
714 $ chmod +x foo.txt
689 $ hg ci -qAm 'add +x to foo.txt'
715 $ hg ci -qAm 'add +x to foo.txt'
690 issue5960: this was raising an AttributeError exception
716 issue5960: this was raising an AttributeError exception
691 $ hg rebase -r . -d 1
717 $ hg rebase -r . -d 1
692 rebasing 2:539b93e77479 "add +x to foo.txt" (tip)
718 rebasing 2:539b93e77479 "add +x to foo.txt" (tip)
693 saved backup bundle to $TESTTMP/no_exception/.hg/strip-backup/*.hg (glob)
719 saved backup bundle to $TESTTMP/no_exception/.hg/strip-backup/*.hg (glob)
694 $ hg diff -c tip
720 $ hg diff -c tip
695 diff --git a/foo.txt b/foo.txt
721 diff --git a/foo.txt b/foo.txt
696 old mode 100644
722 old mode 100644
697 new mode 100755
723 new mode 100755
698
724
699 #endif
725 #endif
General Comments 0
You need to be logged in to leave comments. Login now