|
1 $ echo "[extensions]" >> $HGRCPATH |
|
2 $ echo "mq=" >> $HGRCPATH |
|
3 $ echo "graphlog=" >> $HGRCPATH |
|
4 |
|
5 make a test repository that looks like this: |
|
6 |
|
7 o 2:28bc7b1afd6a |
|
8 | |
|
9 | @ 1:d7fe2034f71b |
|
10 |/ |
|
11 o 0/62ecad8b70e5 |
|
12 |
|
13 $ hg init r0 |
|
14 $ cd r0 |
|
15 $ touch f0 |
|
16 $ hg ci -m0 -Aq |
|
17 $ touch f1 |
|
18 $ hg ci -m1 -Aq |
|
19 |
|
20 $ hg update 0 -q |
|
21 $ touch f2 |
|
22 $ hg ci -m2 -Aq |
|
23 $ hg update 1 -q |
|
24 |
|
25 make some patches with a parent: 1:d7fe2034f71b -> p0 -> p1 |
|
26 |
|
27 $ echo cp0 >> fp0 |
|
28 $ hg add fp0 |
|
29 $ hg qnew p0 -d "0 0" |
|
30 |
|
31 $ echo cp1 >> fp1 |
|
32 $ hg add fp1 |
|
33 $ hg qnew p1 -d "0 0" |
|
34 |
|
35 $ hg qpop -aq |
|
36 patch queue now empty |
|
37 |
|
38 qpush --exact when at the parent |
|
39 |
|
40 $ hg update 1 -q |
|
41 $ hg qpush -e |
|
42 applying p0 |
|
43 now at: p0 |
|
44 $ hg parents -qr qbase |
|
45 1:d7fe2034f71b |
|
46 $ hg qpop -aq |
|
47 patch queue now empty |
|
48 |
|
49 $ hg qpush -e p0 |
|
50 applying p0 |
|
51 now at: p0 |
|
52 $ hg parents -qr qbase |
|
53 1:d7fe2034f71b |
|
54 $ hg qpop -aq |
|
55 patch queue now empty |
|
56 |
|
57 $ hg qpush -e p1 |
|
58 applying p0 |
|
59 applying p1 |
|
60 now at: p1 |
|
61 $ hg parents -qr qbase |
|
62 1:d7fe2034f71b |
|
63 $ hg qpop -aq |
|
64 patch queue now empty |
|
65 |
|
66 $ hg qpush -ea |
|
67 applying p0 |
|
68 applying p1 |
|
69 now at: p1 |
|
70 $ hg parents -qr qbase |
|
71 1:d7fe2034f71b |
|
72 $ hg qpop -aq |
|
73 patch queue now empty |
|
74 |
|
75 qpush --exact when at another rev |
|
76 |
|
77 $ hg update 0 -q |
|
78 $ hg qpush -e |
|
79 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
80 applying p0 |
|
81 now at: p0 |
|
82 $ hg parents -qr qbase |
|
83 1:d7fe2034f71b |
|
84 $ hg qpop -aq |
|
85 patch queue now empty |
|
86 |
|
87 $ hg update 0 -q |
|
88 $ hg qpush -e p0 |
|
89 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
90 applying p0 |
|
91 now at: p0 |
|
92 $ hg parents -qr qbase |
|
93 1:d7fe2034f71b |
|
94 $ hg qpop -aq |
|
95 patch queue now empty |
|
96 |
|
97 $ hg update 0 -q |
|
98 $ hg qpush -e p1 |
|
99 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
100 applying p0 |
|
101 applying p1 |
|
102 now at: p1 |
|
103 $ hg parents -qr qbase |
|
104 1:d7fe2034f71b |
|
105 $ hg qpop -aq |
|
106 patch queue now empty |
|
107 |
|
108 $ hg update 0 -q |
|
109 $ hg qpush -ea |
|
110 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
111 applying p0 |
|
112 applying p1 |
|
113 now at: p1 |
|
114 $ hg parents -qr qbase |
|
115 1:d7fe2034f71b |
|
116 $ hg qpop -aq |
|
117 patch queue now empty |
|
118 |
|
119 qpush --exact while crossing branches |
|
120 |
|
121 $ hg update 2 -q |
|
122 $ hg qpush -e |
|
123 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
124 applying p0 |
|
125 now at: p0 |
|
126 $ hg parents -qr qbase |
|
127 1:d7fe2034f71b |
|
128 $ hg qpop -aq |
|
129 patch queue now empty |
|
130 |
|
131 $ hg update 2 -q |
|
132 $ hg qpush -e p0 |
|
133 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
134 applying p0 |
|
135 now at: p0 |
|
136 $ hg parents -qr qbase |
|
137 1:d7fe2034f71b |
|
138 $ hg qpop -aq |
|
139 patch queue now empty |
|
140 |
|
141 $ hg update 2 -q |
|
142 $ hg qpush -e p1 |
|
143 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
144 applying p0 |
|
145 applying p1 |
|
146 now at: p1 |
|
147 $ hg parents -qr qbase |
|
148 1:d7fe2034f71b |
|
149 $ hg qpop -aq |
|
150 patch queue now empty |
|
151 |
|
152 $ hg update 2 -q |
|
153 $ hg qpush -ea |
|
154 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
155 applying p0 |
|
156 applying p1 |
|
157 now at: p1 |
|
158 $ hg parents -qr qbase |
|
159 1:d7fe2034f71b |
|
160 $ hg qpop -aq |
|
161 patch queue now empty |
|
162 |
|
163 qpush --exact --force with changes to an unpatched file |
|
164 |
|
165 $ hg update 1 -q |
|
166 $ echo c0 >> f0 |
|
167 $ hg qpush -e |
|
168 abort: local changes found, refresh first |
|
169 [255] |
|
170 $ hg qpush -ef |
|
171 applying p0 |
|
172 now at: p0 |
|
173 $ cat f0 |
|
174 c0 |
|
175 $ rm f0 |
|
176 $ touch f0 |
|
177 $ hg qpop -aq |
|
178 patch queue now empty |
|
179 |
|
180 $ hg update 1 -q |
|
181 $ echo c0 >> f0 |
|
182 $ hg qpush -e p1 |
|
183 abort: local changes found, refresh first |
|
184 [255] |
|
185 $ hg qpush -e p1 -f |
|
186 applying p0 |
|
187 applying p1 |
|
188 now at: p1 |
|
189 $ cat f0 |
|
190 c0 |
|
191 $ rm f0 |
|
192 $ touch f0 |
|
193 $ hg qpop -aq |
|
194 patch queue now empty |
|
195 |
|
196 qpush --exact --force with changes to a patched file |
|
197 |
|
198 $ hg update 1 -q |
|
199 $ echo cp0-bad >> fp0 |
|
200 $ hg add fp0 |
|
201 $ hg qpush -e |
|
202 abort: local changes found, refresh first |
|
203 [255] |
|
204 $ hg qpush -ef |
|
205 applying p0 |
|
206 file fp0 already exists |
|
207 1 out of 1 hunks FAILED -- saving rejects to file fp0.rej |
|
208 patch failed, unable to continue (try -v) |
|
209 patch failed, rejects left in working dir |
|
210 errors during apply, please fix and refresh p0 |
|
211 [2] |
|
212 $ cat fp0 |
|
213 cp0-bad |
|
214 $ cat fp0.rej |
|
215 --- fp0 |
|
216 +++ fp0 |
|
217 @@ -0,0 +1,1 @@ |
|
218 +cp0 |
|
219 $ hg qpop -aqf |
|
220 patch queue now empty |
|
221 $ rm fp0 |
|
222 $ rm fp0.rej |
|
223 |
|
224 $ hg update 1 -q |
|
225 $ echo cp1-bad >> fp1 |
|
226 $ hg add fp1 |
|
227 $ hg qpush -e p1 |
|
228 abort: local changes found, refresh first |
|
229 [255] |
|
230 $ hg qpush -e p1 -f |
|
231 applying p0 |
|
232 applying p1 |
|
233 file fp1 already exists |
|
234 1 out of 1 hunks FAILED -- saving rejects to file fp1.rej |
|
235 patch failed, unable to continue (try -v) |
|
236 patch failed, rejects left in working dir |
|
237 errors during apply, please fix and refresh p1 |
|
238 [2] |
|
239 $ cat fp1 |
|
240 cp1-bad |
|
241 $ cat fp1.rej |
|
242 --- fp1 |
|
243 +++ fp1 |
|
244 @@ -0,0 +1,1 @@ |
|
245 +cp1 |
|
246 $ hg qpop -aqf |
|
247 patch queue now empty |
|
248 $ rm fp1 |
|
249 $ rm fp1.rej |
|
250 |
|
251 qpush --exact when already at a patch |
|
252 |
|
253 $ hg update 1 |
|
254 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
255 $ hg qpush -e p0 |
|
256 applying p0 |
|
257 now at: p0 |
|
258 $ hg qpush -e p1 |
|
259 abort: cannot push --exact with applied patches |
|
260 [255] |
|
261 $ hg qpop -aq |
|
262 patch queue now empty |
|
263 |
|
264 qpush --exact --move should fail |
|
265 |
|
266 $ hg qpush -e --move p1 |
|
267 abort: cannot use --exact and --move together |
|
268 [255] |
|
269 |
|
270 qpush --exact a patch without a parent recorded |
|
271 |
|
272 $ hg qpush -q |
|
273 now at: p0 |
|
274 $ grep -v '# Parent' .hg/patches/p0 > p0.new |
|
275 $ mv p0.new .hg/patches/p0 |
|
276 $ hg qpop -aq |
|
277 patch queue now empty |
|
278 $ hg qpush -e |
|
279 abort: p0 does not have a parent recorded |
|
280 [255] |
|
281 $ hg qpush -e p0 |
|
282 abort: p0 does not have a parent recorded |
|
283 [255] |
|
284 $ hg qpush -e p1 |
|
285 abort: p0 does not have a parent recorded |
|
286 [255] |
|
287 $ hg qpush -ea |
|
288 abort: p0 does not have a parent recorded |
|
289 [255] |
|
290 |