##// END OF EJS Templates
add some tests for qpush/qpop error codes
Alexis S. L. Carvalho -
r4101:e2ed92f4 default
parent child Browse files
Show More
@@ -1,339 +1,379 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 echo "[extensions]" >> $HGRCPATH
3 echo "[extensions]" >> $HGRCPATH
4 echo "mq=" >> $HGRCPATH
4 echo "mq=" >> $HGRCPATH
5
5
6 echo % help
6 echo % help
7 hg help mq
7 hg help mq
8
8
9 hg init a
9 hg init a
10 cd a
10 cd a
11 echo a > a
11 echo a > a
12 hg ci -Ama
12 hg ci -Ama
13
13
14 hg clone . ../k
14 hg clone . ../k
15
15
16 mkdir b
16 mkdir b
17 echo z > b/z
17 echo z > b/z
18 hg ci -Ama
18 hg ci -Ama
19
19
20 echo % qinit
20 echo % qinit
21
21
22 hg qinit
22 hg qinit
23
23
24 cd ..
24 cd ..
25 hg init b
25 hg init b
26
26
27 echo % -R qinit
27 echo % -R qinit
28
28
29 hg -R b qinit
29 hg -R b qinit
30
30
31 hg init c
31 hg init c
32
32
33 echo % qinit -c
33 echo % qinit -c
34
34
35 hg --cwd c qinit -c
35 hg --cwd c qinit -c
36 hg -R c/.hg/patches st
36 hg -R c/.hg/patches st
37
37
38 echo % qnew implies add
38 echo % qnew implies add
39
39
40 hg -R c qnew test.patch
40 hg -R c qnew test.patch
41 hg -R c/.hg/patches st
41 hg -R c/.hg/patches st
42
42
43 echo '% qinit; qinit -c'
43 echo '% qinit; qinit -c'
44 hg init d
44 hg init d
45 cd d
45 cd d
46 hg qinit
46 hg qinit
47 hg qinit -c
47 hg qinit -c
48 # qinit -c should create both files if they don't exist
48 # qinit -c should create both files if they don't exist
49 echo ' .hgignore:'
49 echo ' .hgignore:'
50 cat .hg/patches/.hgignore
50 cat .hg/patches/.hgignore
51 echo ' series:'
51 echo ' series:'
52 cat .hg/patches/series
52 cat .hg/patches/series
53 hg qinit -c 2>&1 | sed -e 's/repository.*already/repository already/'
53 hg qinit -c 2>&1 | sed -e 's/repository.*already/repository already/'
54 cd ..
54 cd ..
55
55
56 echo '% qinit; <stuff>; qinit -c'
56 echo '% qinit; <stuff>; qinit -c'
57 hg init e
57 hg init e
58 cd e
58 cd e
59 hg qnew A
59 hg qnew A
60 echo foo > foo
60 echo foo > foo
61 hg add foo
61 hg add foo
62 hg qrefresh
62 hg qrefresh
63 hg qnew B
63 hg qnew B
64 echo >> foo
64 echo >> foo
65 hg qrefresh
65 hg qrefresh
66 echo status >> .hg/patches/.hgignore
66 echo status >> .hg/patches/.hgignore
67 echo bleh >> .hg/patches/.hgignore
67 echo bleh >> .hg/patches/.hgignore
68 hg qinit -c
68 hg qinit -c
69 hg -R .hg/patches status
69 hg -R .hg/patches status
70 # qinit -c shouldn't touch these files if they already exist
70 # qinit -c shouldn't touch these files if they already exist
71 echo ' .hgignore:'
71 echo ' .hgignore:'
72 cat .hg/patches/.hgignore
72 cat .hg/patches/.hgignore
73 echo ' series:'
73 echo ' series:'
74 cat .hg/patches/series
74 cat .hg/patches/series
75 cd ..
75 cd ..
76
76
77 cd a
77 cd a
78
78
79 echo % qnew -m
79 echo % qnew -m
80
80
81 hg qnew -m 'foo bar' test.patch
81 hg qnew -m 'foo bar' test.patch
82 cat .hg/patches/test.patch
82 cat .hg/patches/test.patch
83
83
84 echo % qrefresh
84 echo % qrefresh
85
85
86 echo a >> a
86 echo a >> a
87 hg qrefresh
87 hg qrefresh
88 sed -e "s/^\(diff -r \)\([a-f0-9]* \)/\1 x/" \
88 sed -e "s/^\(diff -r \)\([a-f0-9]* \)/\1 x/" \
89 -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
89 -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
90 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/test.patch
90 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/test.patch
91
91
92 echo % qpop
92 echo % qpop
93
93
94 hg qpop
94 hg qpop
95
95
96 echo % qpush
96 echo % qpush
97
97
98 hg qpush
98 hg qpush
99
99
100 cd ..
100 cd ..
101
101
102 echo % pop/push outside repo
102 echo % pop/push outside repo
103
103
104 hg -R a qpop
104 hg -R a qpop
105 hg -R a qpush
105 hg -R a qpush
106
106
107 cd a
107 cd a
108 hg qnew test2.patch
108 hg qnew test2.patch
109
109
110 echo % qrefresh in subdir
110 echo % qrefresh in subdir
111
111
112 cd b
112 cd b
113 echo a > a
113 echo a > a
114 hg add a
114 hg add a
115 hg qrefresh
115 hg qrefresh
116
116
117 echo % pop/push -a in subdir
117 echo % pop/push -a in subdir
118
118
119 hg qpop -a
119 hg qpop -a
120 hg --traceback qpush -a
120 hg --traceback qpush -a
121
121
122 echo % qseries
122 echo % qseries
123 hg qseries
123 hg qseries
124 hg qpop
124 hg qpop
125 hg qseries -vs
125 hg qseries -vs
126 hg qpush
126 hg qpush
127
127
128 echo % qapplied
128 echo % qapplied
129 hg qapplied
129 hg qapplied
130
130
131 echo % qtop
131 echo % qtop
132 hg qtop
132 hg qtop
133
133
134 echo % qprev
134 echo % qprev
135 hg qprev
135 hg qprev
136
136
137 echo % qnext
137 echo % qnext
138 hg qnext
138 hg qnext
139
139
140 echo % pop, qnext, qprev, qapplied
140 echo % pop, qnext, qprev, qapplied
141 hg qpop
141 hg qpop
142 hg qnext
142 hg qnext
143 hg qprev
143 hg qprev
144 hg qapplied
144 hg qapplied
145
145
146 echo % commit should fail
146 echo % commit should fail
147 hg commit
147 hg commit
148
148
149 echo % push should fail
149 echo % push should fail
150 hg push ../../k
150 hg push ../../k
151
151
152 echo % qunapplied
152 echo % qunapplied
153 hg qunapplied
153 hg qunapplied
154
154
155 echo % qpush/qpop with index
155 echo % qpush/qpop with index
156 hg qnew test1b.patch
156 hg qnew test1b.patch
157 echo 1b > 1b
157 echo 1b > 1b
158 hg add 1b
158 hg add 1b
159 hg qrefresh
159 hg qrefresh
160 hg qpush 2
160 hg qpush 2
161 hg qpop 0
161 hg qpop 0
162 hg qpush test.patch+1
162 hg qpush test.patch+1
163 hg qpush test.patch+2
163 hg qpush test.patch+2
164 hg qpop test2.patch-1
164 hg qpop test2.patch-1
165 hg qpop test2.patch-2
165 hg qpop test2.patch-2
166 hg qpush test1b.patch+1
166 hg qpush test1b.patch+1
167
167
168 echo % push should succeed
168 echo % push should succeed
169 hg qpop -a
169 hg qpop -a
170 hg push ../../k
170 hg push ../../k
171
171
172 echo % qpush/qpop error codes
173 errorcode()
174 {
175 hg "$@" && echo " $@ succeeds" || echo " $@ fails"
176 }
177
178 # we want to start with some patches applied
179 hg qpush -a
180 echo " % pops all patches and succeeds"
181 errorcode qpop -a
182 echo " % does nothing and succeeds"
183 errorcode qpop -a
184 echo " % fails - nothing else to pop"
185 errorcode qpop
186 echo " % pushes a patch and succeeds"
187 errorcode qpush
188 echo " % pops a patch and succeeds"
189 errorcode qpop
190 echo " % pushes up to test1b.patch and succeeds"
191 errorcode qpush test1b.patch
192 echo " % does nothing and succeeds"
193 errorcode qpush test1b.patch
194 echo " % does nothing and succeeds"
195 errorcode qpop test1b.patch
196 echo " % fails - can't push to this patch"
197 errorcode qpush test.patch
198 echo " % fails - can't pop to this patch"
199 errorcode qpop test2.patch
200 echo " % pops up to test.patch and succeeds"
201 errorcode qpop test.patch
202 echo " % pushes all patches and succeeds"
203 errorcode qpush -a
204 echo " % does nothing and succeeds"
205 errorcode qpush -a
206 echo " % fails - nothing else to push"
207 errorcode qpush
208 echo " % does nothing and succeeds"
209 errorcode qpush test2.patch
210
211
172 echo % strip
212 echo % strip
173 cd ../../b
213 cd ../../b
174 echo x>x
214 echo x>x
175 hg ci -Ama
215 hg ci -Ama
176 hg strip tip 2>&1 | sed 's/\(saving bundle to \).*/\1/'
216 hg strip tip 2>&1 | sed 's/\(saving bundle to \).*/\1/'
177 hg unbundle .hg/strip-backup/*
217 hg unbundle .hg/strip-backup/*
178
218
179 echo '% cd b; hg qrefresh'
219 echo '% cd b; hg qrefresh'
180 hg init refresh
220 hg init refresh
181 cd refresh
221 cd refresh
182 echo a > a
222 echo a > a
183 hg ci -Ama -d'0 0'
223 hg ci -Ama -d'0 0'
184 hg qnew -mfoo foo
224 hg qnew -mfoo foo
185 echo a >> a
225 echo a >> a
186 hg qrefresh
226 hg qrefresh
187 mkdir b
227 mkdir b
188 cd b
228 cd b
189 echo f > f
229 echo f > f
190 hg add f
230 hg add f
191 hg qrefresh
231 hg qrefresh
192 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
232 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
193 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo
233 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo
194 echo % hg qrefresh .
234 echo % hg qrefresh .
195 hg qrefresh .
235 hg qrefresh .
196 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
236 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
197 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo
237 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo
198 hg status
238 hg status
199
239
200 echo % qpush failure
240 echo % qpush failure
201 cd ..
241 cd ..
202 hg qrefresh
242 hg qrefresh
203 hg qnew -mbar bar
243 hg qnew -mbar bar
204 echo foo > foo
244 echo foo > foo
205 echo bar > bar
245 echo bar > bar
206 hg add foo bar
246 hg add foo bar
207 hg qrefresh
247 hg qrefresh
208 hg qpop -a
248 hg qpop -a
209 echo bar > foo
249 echo bar > foo
210 hg qpush -a
250 hg qpush -a
211 hg st
251 hg st
212
252
213 cat >>$HGRCPATH <<EOF
253 cat >>$HGRCPATH <<EOF
214 [diff]
254 [diff]
215 git = True
255 git = True
216 EOF
256 EOF
217 cd ..
257 cd ..
218 hg init git
258 hg init git
219 cd git
259 cd git
220 hg qinit
260 hg qinit
221
261
222 hg qnew -m'new file' new
262 hg qnew -m'new file' new
223 echo foo > new
263 echo foo > new
224 chmod +x new
264 chmod +x new
225 hg add new
265 hg add new
226 hg qrefresh
266 hg qrefresh
227 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
267 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
228 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/new
268 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/new
229
269
230 hg qnew -m'copy file' copy
270 hg qnew -m'copy file' copy
231 hg cp new copy
271 hg cp new copy
232 hg qrefresh
272 hg qrefresh
233 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
273 sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
234 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/copy
274 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/copy
235
275
236 hg qpop
276 hg qpop
237 hg qpush
277 hg qpush
238 hg qdiff
278 hg qdiff
239 cat >>$HGRCPATH <<EOF
279 cat >>$HGRCPATH <<EOF
240 [diff]
280 [diff]
241 git = False
281 git = False
242 EOF
282 EOF
243 hg qdiff --git
283 hg qdiff --git
244
284
245 cd ..
285 cd ..
246 hg init slow
286 hg init slow
247 cd slow
287 cd slow
248 hg qinit
288 hg qinit
249 echo foo > foo
289 echo foo > foo
250 hg add foo
290 hg add foo
251 hg ci -m 'add foo'
291 hg ci -m 'add foo'
252 hg qnew bar
292 hg qnew bar
253 echo bar > bar
293 echo bar > bar
254 hg add bar
294 hg add bar
255 hg mv foo baz
295 hg mv foo baz
256 hg qrefresh --git
296 hg qrefresh --git
257 hg up -C 0
297 hg up -C 0
258 echo >> foo
298 echo >> foo
259 hg ci -m 'change foo'
299 hg ci -m 'change foo'
260 hg up -C 1
300 hg up -C 1
261 hg qrefresh --git 2>&1 | grep -v 'saving bundle'
301 hg qrefresh --git 2>&1 | grep -v 'saving bundle'
262 cat .hg/patches/bar
302 cat .hg/patches/bar
263 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
303 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
264 hg qrefresh --git
304 hg qrefresh --git
265 cat .hg/patches/bar
305 cat .hg/patches/bar
266 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
306 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
267
307
268 echo
308 echo
269 hg up -C 1
309 hg up -C 1
270 echo >> foo
310 echo >> foo
271 hg ci -m 'change foo again'
311 hg ci -m 'change foo again'
272 hg up -C 2
312 hg up -C 2
273 hg mv bar quux
313 hg mv bar quux
274 hg mv baz bleh
314 hg mv baz bleh
275 hg qrefresh --git 2>&1 | grep -v 'saving bundle'
315 hg qrefresh --git 2>&1 | grep -v 'saving bundle'
276 cat .hg/patches/bar
316 cat .hg/patches/bar
277 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
317 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
278 hg mv quux fred
318 hg mv quux fred
279 hg mv bleh barney
319 hg mv bleh barney
280 hg qrefresh --git
320 hg qrefresh --git
281 cat .hg/patches/bar
321 cat .hg/patches/bar
282 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
322 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
283
323
284 echo '% strip again'
324 echo '% strip again'
285 cd ..
325 cd ..
286 hg init strip
326 hg init strip
287 cd strip
327 cd strip
288 touch foo
328 touch foo
289 hg add foo
329 hg add foo
290 hg ci -m 'add foo' -d '0 0'
330 hg ci -m 'add foo' -d '0 0'
291 echo >> foo
331 echo >> foo
292 hg ci -m 'change foo 1' -d '0 0'
332 hg ci -m 'change foo 1' -d '0 0'
293 hg up -C 0
333 hg up -C 0
294 echo 1 >> foo
334 echo 1 >> foo
295 hg ci -m 'change foo 2' -d '0 0'
335 hg ci -m 'change foo 2' -d '0 0'
296 HGMERGE=true hg merge
336 HGMERGE=true hg merge
297 hg ci -m merge -d '0 0'
337 hg ci -m merge -d '0 0'
298 hg log
338 hg log
299 hg strip 1 2>&1 | sed 's/\(saving bundle to \).*/\1/'
339 hg strip 1 2>&1 | sed 's/\(saving bundle to \).*/\1/'
300 hg log
340 hg log
301 cd ..
341 cd ..
302
342
303 echo '% qclone'
343 echo '% qclone'
304 qlog()
344 qlog()
305 {
345 {
306 echo 'main repo:'
346 echo 'main repo:'
307 hg log --template ' rev {rev}: {desc}\n'
347 hg log --template ' rev {rev}: {desc}\n'
308 echo 'patch repo:'
348 echo 'patch repo:'
309 hg -R .hg/patches log --template ' rev {rev}: {desc}\n'
349 hg -R .hg/patches log --template ' rev {rev}: {desc}\n'
310 }
350 }
311 hg init qclonesource
351 hg init qclonesource
312 cd qclonesource
352 cd qclonesource
313 echo foo > foo
353 echo foo > foo
314 hg add foo
354 hg add foo
315 hg ci -m 'add foo'
355 hg ci -m 'add foo'
316 hg qinit -c
356 hg qinit -c
317 hg qnew patch1
357 hg qnew patch1
318 echo bar >> foo
358 echo bar >> foo
319 hg qrefresh -m 'change foo'
359 hg qrefresh -m 'change foo'
320 hg qci -m checkpoint
360 hg qci -m checkpoint
321 qlog
361 qlog
322 cd ..
362 cd ..
323
363
324 # repo with patches applied
364 # repo with patches applied
325 hg qclone qclonesource qclonedest
365 hg qclone qclonesource qclonedest
326 cd qclonedest
366 cd qclonedest
327 qlog
367 qlog
328 cd ..
368 cd ..
329
369
330 # repo with patches unapplied
370 # repo with patches unapplied
331 cd qclonesource
371 cd qclonesource
332 hg qpop -a
372 hg qpop -a
333 qlog
373 qlog
334 cd ..
374 cd ..
335 hg qclone qclonesource qclonedest2
375 hg qclone qclonesource qclonedest2
336 cd qclonedest2
376 cd qclonedest2
337 qlog
377 qlog
338 cd ..
378 cd ..
339
379
@@ -1,358 +1,413 b''
1 % help
1 % help
2 mq extension - patch management and development
2 mq extension - patch management and development
3
3
4 This extension lets you work with a stack of patches in a Mercurial
4 This extension lets you work with a stack of patches in a Mercurial
5 repository. It manages two stacks of patches - all known patches, and
5 repository. It manages two stacks of patches - all known patches, and
6 applied patches (subset of known patches).
6 applied patches (subset of known patches).
7
7
8 Known patches are represented as patch files in the .hg/patches
8 Known patches are represented as patch files in the .hg/patches
9 directory. Applied patches are both patch files and changesets.
9 directory. Applied patches are both patch files and changesets.
10
10
11 Common tasks (use "hg help command" for more details):
11 Common tasks (use "hg help command" for more details):
12
12
13 prepare repository to work with patches qinit
13 prepare repository to work with patches qinit
14 create new patch qnew
14 create new patch qnew
15 import existing patch qimport
15 import existing patch qimport
16
16
17 print patch series qseries
17 print patch series qseries
18 print applied patches qapplied
18 print applied patches qapplied
19 print name of top applied patch qtop
19 print name of top applied patch qtop
20
20
21 add known patch to applied stack qpush
21 add known patch to applied stack qpush
22 remove patch from applied stack qpop
22 remove patch from applied stack qpop
23 refresh contents of top applied patch qrefresh
23 refresh contents of top applied patch qrefresh
24
24
25 list of commands (use "hg help -v mq" to show aliases and global options):
25 list of commands (use "hg help -v mq" to show aliases and global options):
26
26
27 qapplied print the patches already applied
27 qapplied print the patches already applied
28 qclone clone main and patch repository at same time
28 qclone clone main and patch repository at same time
29 qcommit commit changes in the queue repository
29 qcommit commit changes in the queue repository
30 qdelete remove patches from queue
30 qdelete remove patches from queue
31 qdiff diff of the current patch
31 qdiff diff of the current patch
32 qfold fold the named patches into the current patch
32 qfold fold the named patches into the current patch
33 qguard set or print guards for a patch
33 qguard set or print guards for a patch
34 qheader Print the header of the topmost or specified patch
34 qheader Print the header of the topmost or specified patch
35 qimport import a patch
35 qimport import a patch
36 qinit init a new queue repository
36 qinit init a new queue repository
37 qnew create a new patch
37 qnew create a new patch
38 qnext print the name of the next patch
38 qnext print the name of the next patch
39 qpop pop the current patch off the stack
39 qpop pop the current patch off the stack
40 qprev print the name of the previous patch
40 qprev print the name of the previous patch
41 qpush push the next patch onto the stack
41 qpush push the next patch onto the stack
42 qrefresh update the current patch
42 qrefresh update the current patch
43 qrename rename a patch
43 qrename rename a patch
44 qrestore restore the queue state saved by a rev
44 qrestore restore the queue state saved by a rev
45 qsave save current queue state
45 qsave save current queue state
46 qselect set or print guarded patches to push
46 qselect set or print guarded patches to push
47 qseries print the entire series file
47 qseries print the entire series file
48 qtop print the name of the current patch
48 qtop print the name of the current patch
49 qunapplied print the patches not yet applied
49 qunapplied print the patches not yet applied
50 strip strip a revision and all later revs on the same branch
50 strip strip a revision and all later revs on the same branch
51 adding a
51 adding a
52 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
52 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
53 adding b/z
53 adding b/z
54 % qinit
54 % qinit
55 % -R qinit
55 % -R qinit
56 % qinit -c
56 % qinit -c
57 A .hgignore
57 A .hgignore
58 A series
58 A series
59 % qnew implies add
59 % qnew implies add
60 A .hgignore
60 A .hgignore
61 A series
61 A series
62 A test.patch
62 A test.patch
63 % qinit; qinit -c
63 % qinit; qinit -c
64 .hgignore:
64 .hgignore:
65 syntax: glob
65 syntax: glob
66 status
66 status
67 guards
67 guards
68 series:
68 series:
69 abort: repository already exists!
69 abort: repository already exists!
70 % qinit; <stuff>; qinit -c
70 % qinit; <stuff>; qinit -c
71 adding A
71 adding A
72 adding B
72 adding B
73 A .hgignore
73 A .hgignore
74 A A
74 A A
75 A B
75 A B
76 A series
76 A series
77 .hgignore:
77 .hgignore:
78 status
78 status
79 bleh
79 bleh
80 series:
80 series:
81 A
81 A
82 B
82 B
83 % qnew -m
83 % qnew -m
84 foo bar
84 foo bar
85 % qrefresh
85 % qrefresh
86 foo bar
86 foo bar
87
87
88 diff -r xa
88 diff -r xa
89 --- a/a
89 --- a/a
90 +++ b/a
90 +++ b/a
91 @@ -1,1 +1,2 @@ a
91 @@ -1,1 +1,2 @@ a
92 a
92 a
93 +a
93 +a
94 % qpop
94 % qpop
95 Patch queue now empty
95 Patch queue now empty
96 % qpush
96 % qpush
97 applying test.patch
97 applying test.patch
98 Now at: test.patch
98 Now at: test.patch
99 % pop/push outside repo
99 % pop/push outside repo
100 Patch queue now empty
100 Patch queue now empty
101 applying test.patch
101 applying test.patch
102 Now at: test.patch
102 Now at: test.patch
103 % qrefresh in subdir
103 % qrefresh in subdir
104 % pop/push -a in subdir
104 % pop/push -a in subdir
105 Patch queue now empty
105 Patch queue now empty
106 applying test.patch
106 applying test.patch
107 applying test2.patch
107 applying test2.patch
108 Now at: test2.patch
108 Now at: test2.patch
109 % qseries
109 % qseries
110 test.patch
110 test.patch
111 test2.patch
111 test2.patch
112 Now at: test.patch
112 Now at: test.patch
113 0 A test.patch: foo bar
113 0 A test.patch: foo bar
114 1 U test2.patch:
114 1 U test2.patch:
115 applying test2.patch
115 applying test2.patch
116 Now at: test2.patch
116 Now at: test2.patch
117 % qapplied
117 % qapplied
118 test.patch
118 test.patch
119 test2.patch
119 test2.patch
120 % qtop
120 % qtop
121 test2.patch
121 test2.patch
122 % qprev
122 % qprev
123 test.patch
123 test.patch
124 % qnext
124 % qnext
125 All patches applied
125 All patches applied
126 % pop, qnext, qprev, qapplied
126 % pop, qnext, qprev, qapplied
127 Now at: test.patch
127 Now at: test.patch
128 test2.patch
128 test2.patch
129 Only one patch applied
129 Only one patch applied
130 test.patch
130 test.patch
131 % commit should fail
131 % commit should fail
132 abort: cannot commit over an applied mq patch
132 abort: cannot commit over an applied mq patch
133 % push should fail
133 % push should fail
134 pushing to ../../k
134 pushing to ../../k
135 abort: source has mq patches applied
135 abort: source has mq patches applied
136 % qunapplied
136 % qunapplied
137 test2.patch
137 test2.patch
138 % qpush/qpop with index
138 % qpush/qpop with index
139 applying test2.patch
139 applying test2.patch
140 Now at: test2.patch
140 Now at: test2.patch
141 Now at: test.patch
141 Now at: test.patch
142 applying test1b.patch
142 applying test1b.patch
143 Now at: test1b.patch
143 Now at: test1b.patch
144 applying test2.patch
144 applying test2.patch
145 Now at: test2.patch
145 Now at: test2.patch
146 Now at: test1b.patch
146 Now at: test1b.patch
147 Now at: test.patch
147 Now at: test.patch
148 applying test1b.patch
148 applying test1b.patch
149 applying test2.patch
149 applying test2.patch
150 Now at: test2.patch
150 Now at: test2.patch
151 % push should succeed
151 % push should succeed
152 Patch queue now empty
152 Patch queue now empty
153 pushing to ../../k
153 pushing to ../../k
154 searching for changes
154 searching for changes
155 adding changesets
155 adding changesets
156 adding manifests
156 adding manifests
157 adding file changes
157 adding file changes
158 added 1 changesets with 1 changes to 1 files
158 added 1 changesets with 1 changes to 1 files
159 % qpush/qpop error codes
160 applying test.patch
161 applying test1b.patch
162 applying test2.patch
163 Now at: test2.patch
164 % pops all patches and succeeds
165 Patch queue now empty
166 qpop -a succeeds
167 % does nothing and succeeds
168 no patches applied
169 qpop -a succeeds
170 % fails - nothing else to pop
171 no patches applied
172 qpop fails
173 % pushes a patch and succeeds
174 applying test.patch
175 Now at: test.patch
176 qpush succeeds
177 % pops a patch and succeeds
178 Patch queue now empty
179 qpop succeeds
180 % pushes up to test1b.patch and succeeds
181 applying test.patch
182 applying test1b.patch
183 Now at: test1b.patch
184 qpush test1b.patch succeeds
185 % does nothing and succeeds
186 qpush: test1b.patch is already at the top
187 qpush test1b.patch succeeds
188 % does nothing and succeeds
189 qpop: test1b.patch is already at the top
190 qpop test1b.patch succeeds
191 % fails - can't push to this patch
192 abort: cannot push to a previous patch: test.patch
193 qpush test.patch fails
194 % fails - can't pop to this patch
195 abort: patch test2.patch is not applied
196 qpop test2.patch fails
197 % pops up to test.patch and succeeds
198 Now at: test.patch
199 qpop test.patch succeeds
200 % pushes all patches and succeeds
201 applying test1b.patch
202 applying test2.patch
203 Now at: test2.patch
204 qpush -a succeeds
205 % does nothing and succeeds
206 all patches are currently applied
207 qpush -a succeeds
208 % fails - nothing else to push
209 patch series already fully applied
210 qpush fails
211 % does nothing and succeeds
212 all patches are currently applied
213 qpush test2.patch succeeds
159 % strip
214 % strip
160 adding x
215 adding x
161 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
216 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
162 saving bundle to
217 saving bundle to
163 adding changesets
218 adding changesets
164 adding manifests
219 adding manifests
165 adding file changes
220 adding file changes
166 added 1 changesets with 1 changes to 1 files
221 added 1 changesets with 1 changes to 1 files
167 (run 'hg update' to get a working copy)
222 (run 'hg update' to get a working copy)
168 % cd b; hg qrefresh
223 % cd b; hg qrefresh
169 adding a
224 adding a
170 foo
225 foo
171
226
172 diff -r cb9a9f314b8b a
227 diff -r cb9a9f314b8b a
173 --- a/a
228 --- a/a
174 +++ b/a
229 +++ b/a
175 @@ -1,1 +1,2 @@ a
230 @@ -1,1 +1,2 @@ a
176 a
231 a
177 +a
232 +a
178 diff -r cb9a9f314b8b b/f
233 diff -r cb9a9f314b8b b/f
179 --- /dev/null
234 --- /dev/null
180 +++ b/b/f
235 +++ b/b/f
181 @@ -0,0 +1,1 @@
236 @@ -0,0 +1,1 @@
182 +f
237 +f
183 % hg qrefresh .
238 % hg qrefresh .
184 foo
239 foo
185
240
186 diff -r cb9a9f314b8b b/f
241 diff -r cb9a9f314b8b b/f
187 --- /dev/null
242 --- /dev/null
188 +++ b/b/f
243 +++ b/b/f
189 @@ -0,0 +1,1 @@
244 @@ -0,0 +1,1 @@
190 +f
245 +f
191 M a
246 M a
192 % qpush failure
247 % qpush failure
193 Patch queue now empty
248 Patch queue now empty
194 applying foo
249 applying foo
195 applying bar
250 applying bar
196 1 out of 1 hunk ignored -- saving rejects to file foo.rej
251 1 out of 1 hunk ignored -- saving rejects to file foo.rej
197 patch failed, unable to continue (try -v)
252 patch failed, unable to continue (try -v)
198 patch failed, rejects left in working dir
253 patch failed, rejects left in working dir
199 Errors during apply, please fix and refresh bar
254 Errors during apply, please fix and refresh bar
200 ? foo
255 ? foo
201 ? foo.rej
256 ? foo.rej
202 new file
257 new file
203
258
204 diff --git a/new b/new
259 diff --git a/new b/new
205 new file mode 100755
260 new file mode 100755
206 --- /dev/null
261 --- /dev/null
207 +++ b/new
262 +++ b/new
208 @@ -0,0 +1,1 @@
263 @@ -0,0 +1,1 @@
209 +foo
264 +foo
210 copy file
265 copy file
211
266
212 diff --git a/new b/copy
267 diff --git a/new b/copy
213 copy from new
268 copy from new
214 copy to copy
269 copy to copy
215 Now at: new
270 Now at: new
216 applying copy
271 applying copy
217 Now at: copy
272 Now at: copy
218 diff --git a/new b/copy
273 diff --git a/new b/copy
219 copy from new
274 copy from new
220 copy to copy
275 copy to copy
221 diff --git a/new b/copy
276 diff --git a/new b/copy
222 copy from new
277 copy from new
223 copy to copy
278 copy to copy
224 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
279 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
225 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
280 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
226 adding branch
281 adding branch
227 adding changesets
282 adding changesets
228 adding manifests
283 adding manifests
229 adding file changes
284 adding file changes
230 added 1 changesets with 1 changes to 1 files
285 added 1 changesets with 1 changes to 1 files
231 (run 'hg update' to get a working copy)
286 (run 'hg update' to get a working copy)
232 Patch queue now empty
287 Patch queue now empty
233 applying bar
288 applying bar
234 Now at: bar
289 Now at: bar
235 diff --git a/bar b/bar
290 diff --git a/bar b/bar
236 new file mode 100644
291 new file mode 100644
237 --- /dev/null
292 --- /dev/null
238 +++ b/bar
293 +++ b/bar
239 @@ -0,0 +1,1 @@
294 @@ -0,0 +1,1 @@
240 +bar
295 +bar
241 diff --git a/foo b/baz
296 diff --git a/foo b/baz
242 rename from foo
297 rename from foo
243 rename to baz
298 rename to baz
244 2 baz (foo)
299 2 baz (foo)
245 diff --git a/bar b/bar
300 diff --git a/bar b/bar
246 new file mode 100644
301 new file mode 100644
247 --- /dev/null
302 --- /dev/null
248 +++ b/bar
303 +++ b/bar
249 @@ -0,0 +1,1 @@
304 @@ -0,0 +1,1 @@
250 +bar
305 +bar
251 diff --git a/foo b/baz
306 diff --git a/foo b/baz
252 rename from foo
307 rename from foo
253 rename to baz
308 rename to baz
254 2 baz (foo)
309 2 baz (foo)
255
310
256 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
311 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
257 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
312 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
258 adding branch
313 adding branch
259 adding changesets
314 adding changesets
260 adding manifests
315 adding manifests
261 adding file changes
316 adding file changes
262 added 1 changesets with 1 changes to 1 files
317 added 1 changesets with 1 changes to 1 files
263 (run 'hg update' to get a working copy)
318 (run 'hg update' to get a working copy)
264 Patch queue now empty
319 Patch queue now empty
265 applying bar
320 applying bar
266 Now at: bar
321 Now at: bar
267 diff --git a/foo b/bleh
322 diff --git a/foo b/bleh
268 rename from foo
323 rename from foo
269 rename to bleh
324 rename to bleh
270 diff --git a/quux b/quux
325 diff --git a/quux b/quux
271 new file mode 100644
326 new file mode 100644
272 --- /dev/null
327 --- /dev/null
273 +++ b/quux
328 +++ b/quux
274 @@ -0,0 +1,1 @@
329 @@ -0,0 +1,1 @@
275 +bar
330 +bar
276 3 bleh (foo)
331 3 bleh (foo)
277 diff --git a/foo b/barney
332 diff --git a/foo b/barney
278 rename from foo
333 rename from foo
279 rename to barney
334 rename to barney
280 diff --git a/fred b/fred
335 diff --git a/fred b/fred
281 new file mode 100644
336 new file mode 100644
282 --- /dev/null
337 --- /dev/null
283 +++ b/fred
338 +++ b/fred
284 @@ -0,0 +1,1 @@
339 @@ -0,0 +1,1 @@
285 +bar
340 +bar
286 3 barney (foo)
341 3 barney (foo)
287 % strip again
342 % strip again
288 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
343 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
289 merging foo
344 merging foo
290 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
345 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
291 (branch merge, don't forget to commit)
346 (branch merge, don't forget to commit)
292 changeset: 3:99615015637b
347 changeset: 3:99615015637b
293 tag: tip
348 tag: tip
294 parent: 2:20cbbe65cff7
349 parent: 2:20cbbe65cff7
295 parent: 1:d2871fc282d4
350 parent: 1:d2871fc282d4
296 user: test
351 user: test
297 date: Thu Jan 01 00:00:00 1970 +0000
352 date: Thu Jan 01 00:00:00 1970 +0000
298 summary: merge
353 summary: merge
299
354
300 changeset: 2:20cbbe65cff7
355 changeset: 2:20cbbe65cff7
301 parent: 0:53245c60e682
356 parent: 0:53245c60e682
302 user: test
357 user: test
303 date: Thu Jan 01 00:00:00 1970 +0000
358 date: Thu Jan 01 00:00:00 1970 +0000
304 summary: change foo 2
359 summary: change foo 2
305
360
306 changeset: 1:d2871fc282d4
361 changeset: 1:d2871fc282d4
307 user: test
362 user: test
308 date: Thu Jan 01 00:00:00 1970 +0000
363 date: Thu Jan 01 00:00:00 1970 +0000
309 summary: change foo 1
364 summary: change foo 1
310
365
311 changeset: 0:53245c60e682
366 changeset: 0:53245c60e682
312 user: test
367 user: test
313 date: Thu Jan 01 00:00:00 1970 +0000
368 date: Thu Jan 01 00:00:00 1970 +0000
314 summary: add foo
369 summary: add foo
315
370
316 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
371 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
317 saving bundle to
372 saving bundle to
318 saving bundle to
373 saving bundle to
319 adding branch
374 adding branch
320 adding changesets
375 adding changesets
321 adding manifests
376 adding manifests
322 adding file changes
377 adding file changes
323 added 1 changesets with 1 changes to 1 files
378 added 1 changesets with 1 changes to 1 files
324 (run 'hg update' to get a working copy)
379 (run 'hg update' to get a working copy)
325 changeset: 1:20cbbe65cff7
380 changeset: 1:20cbbe65cff7
326 tag: tip
381 tag: tip
327 user: test
382 user: test
328 date: Thu Jan 01 00:00:00 1970 +0000
383 date: Thu Jan 01 00:00:00 1970 +0000
329 summary: change foo 2
384 summary: change foo 2
330
385
331 changeset: 0:53245c60e682
386 changeset: 0:53245c60e682
332 user: test
387 user: test
333 date: Thu Jan 01 00:00:00 1970 +0000
388 date: Thu Jan 01 00:00:00 1970 +0000
334 summary: add foo
389 summary: add foo
335
390
336 % qclone
391 % qclone
337 main repo:
392 main repo:
338 rev 1: change foo
393 rev 1: change foo
339 rev 0: add foo
394 rev 0: add foo
340 patch repo:
395 patch repo:
341 rev 0: checkpoint
396 rev 0: checkpoint
342 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
397 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
343 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
398 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
344 main repo:
399 main repo:
345 rev 0: add foo
400 rev 0: add foo
346 patch repo:
401 patch repo:
347 rev 0: checkpoint
402 rev 0: checkpoint
348 Patch queue now empty
403 Patch queue now empty
349 main repo:
404 main repo:
350 rev 0: add foo
405 rev 0: add foo
351 patch repo:
406 patch repo:
352 rev 0: checkpoint
407 rev 0: checkpoint
353 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
408 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
354 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
409 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
355 main repo:
410 main repo:
356 rev 0: add foo
411 rev 0: add foo
357 patch repo:
412 patch repo:
358 rev 0: checkpoint
413 rev 0: checkpoint
General Comments 0
You need to be logged in to leave comments. Login now