Show More
@@ -20,6 +20,9 b' from mercurial import bundlerepo, hg, me' | |||||
20 | from mercurial import patch, revlog, scmutil, util, error, cmdutil |
|
20 | from mercurial import patch, revlog, scmutil, util, error, cmdutil | |
21 | from mercurial import revset, templatekw |
|
21 | from mercurial import revset, templatekw | |
22 |
|
22 | |||
|
23 | class TransplantError(error.Abort): | |||
|
24 | pass | |||
|
25 | ||||
23 | cmdtable = {} |
|
26 | cmdtable = {} | |
24 | command = cmdutil.command(cmdtable) |
|
27 | command = cmdutil.command(cmdtable) | |
25 |
|
28 | |||
@@ -171,11 +174,17 b' class transplanter(object):' | |||||
171 | del revmap[rev] |
|
174 | del revmap[rev] | |
172 | if patchfile or domerge: |
|
175 | if patchfile or domerge: | |
173 | try: |
|
176 | try: | |
|
177 | try: | |||
174 | n = self.applyone(repo, node, |
|
178 | n = self.applyone(repo, node, | |
175 | source.changelog.read(node), |
|
179 | source.changelog.read(node), | |
176 | patchfile, merge=domerge, |
|
180 | patchfile, merge=domerge, | |
177 | log=opts.get('log'), |
|
181 | log=opts.get('log'), | |
178 | filter=opts.get('filter')) |
|
182 | filter=opts.get('filter')) | |
|
183 | except TransplantError: | |||
|
184 | # Do not rollback, it is up to the user to | |||
|
185 | # fix the merge or cancel everything | |||
|
186 | tr.close() | |||
|
187 | raise | |||
179 | if n and domerge: |
|
188 | if n and domerge: | |
180 | self.ui.status(_('%s merged at %s\n') % (revstr, |
|
189 | self.ui.status(_('%s merged at %s\n') % (revstr, | |
181 | short(n))) |
|
190 | short(n))) | |
@@ -259,7 +268,7 b' class transplanter(object):' | |||||
259 | p2 = node |
|
268 | p2 = node | |
260 | self.log(user, date, message, p1, p2, merge=merge) |
|
269 | self.log(user, date, message, p1, p2, merge=merge) | |
261 | self.ui.write(str(inst) + '\n') |
|
270 | self.ui.write(str(inst) + '\n') | |
262 |
raise |
|
271 | raise TransplantError(_('fix up the merge and run ' | |
263 | 'hg transplant --continue')) |
|
272 | 'hg transplant --continue')) | |
264 | else: |
|
273 | else: | |
265 | files = None |
|
274 | files = None |
@@ -212,7 +212,9 b' transplant --continue' | |||||
212 | > baz |
|
212 | > baz | |
213 | > EOF |
|
213 | > EOF | |
214 | $ echo toremove > toremove |
|
214 | $ echo toremove > toremove | |
|
215 | $ echo baz > baz | |||
215 | $ hg ci -Amfoo |
|
216 | $ hg ci -Amfoo | |
|
217 | adding baz | |||
216 | adding foo |
|
218 | adding foo | |
217 | adding toremove |
|
219 | adding toremove | |
218 | $ cat <<EOF > foo |
|
220 | $ cat <<EOF > foo | |
@@ -226,17 +228,22 b' transplant --continue' | |||||
226 | adding added |
|
228 | adding added | |
227 | removing toremove |
|
229 | removing toremove | |
228 | $ echo bar > bar |
|
230 | $ echo bar > bar | |
|
231 | $ cat > baz <<EOF | |||
|
232 | > before baz | |||
|
233 | > baz | |||
|
234 | > after baz | |||
|
235 | > EOF | |||
229 | $ hg ci -Ambar |
|
236 | $ hg ci -Ambar | |
230 | adding bar |
|
237 | adding bar | |
231 | $ echo bar2 >> bar |
|
238 | $ echo bar2 >> bar | |
232 | $ hg ci -mbar2 |
|
239 | $ hg ci -mbar2 | |
233 | $ hg up 0 |
|
240 | $ hg up 0 | |
234 |
|
|
241 | 3 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
235 | $ echo foobar > foo |
|
242 | $ echo foobar > foo | |
236 | $ hg ci -mfoobar |
|
243 | $ hg ci -mfoobar | |
237 | created new head |
|
244 | created new head | |
238 | $ hg transplant 1:3 |
|
245 | $ hg transplant 1:3 | |
239 |
applying |
|
246 | applying 46ae92138f3c | |
240 | patching file foo |
|
247 | patching file foo | |
241 | Hunk #1 FAILED at 0 |
|
248 | Hunk #1 FAILED at 0 | |
242 | 1 out of 1 hunks FAILED -- saving rejects to file foo.rej |
|
249 | 1 out of 1 hunks FAILED -- saving rejects to file foo.rej | |
@@ -250,7 +257,7 b" transplant -c shouldn't use an old chang" | |||||
250 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
257 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
251 | $ rm added |
|
258 | $ rm added | |
252 | $ hg transplant 1 |
|
259 | $ hg transplant 1 | |
253 |
applying |
|
260 | applying 46ae92138f3c | |
254 | patching file foo |
|
261 | patching file foo | |
255 | Hunk #1 FAILED at 0 |
|
262 | Hunk #1 FAILED at 0 | |
256 | 1 out of 1 hunks FAILED -- saving rejects to file foo.rej |
|
263 | 1 out of 1 hunks FAILED -- saving rejects to file foo.rej | |
@@ -258,17 +265,41 b" transplant -c shouldn't use an old chang" | |||||
258 | abort: fix up the merge and run hg transplant --continue |
|
265 | abort: fix up the merge and run hg transplant --continue | |
259 | [255] |
|
266 | [255] | |
260 | $ hg transplant --continue |
|
267 | $ hg transplant --continue | |
261 |
|
|
268 | 46ae92138f3c transplanted as 9159dada197d | |
262 | $ hg transplant 1:3 |
|
269 | $ hg transplant 1:3 | |
263 |
skipping already applied revision 1: |
|
270 | skipping already applied revision 1:46ae92138f3c | |
264 | applying 1739ac5f6139 |
|
271 | applying 9d6d6b5a8275 | |
265 |
|
|
272 | 9d6d6b5a8275 transplanted to 2d17a10c922f | |
266 | applying 0282d5fbbe02 |
|
273 | applying 1dab759070cf | |
267 | 0282d5fbbe02 transplanted to 77418277ccb3 |
|
274 | 1dab759070cf transplanted to e06a69927eb0 | |
268 | $ hg locate |
|
275 | $ hg locate | |
269 | added |
|
276 | added | |
270 | bar |
|
277 | bar | |
|
278 | baz | |||
271 | foo |
|
279 | foo | |
|
280 | ||||
|
281 | test multiple revisions and --continue | |||
|
282 | ||||
|
283 | $ hg up -qC 0 | |||
|
284 | $ echo bazbaz > baz | |||
|
285 | $ hg ci -Am anotherbaz baz | |||
|
286 | created new head | |||
|
287 | $ hg transplant 1:3 | |||
|
288 | applying 46ae92138f3c | |||
|
289 | 46ae92138f3c transplanted to 1024233ea0ba | |||
|
290 | applying 9d6d6b5a8275 | |||
|
291 | patching file baz | |||
|
292 | Hunk #1 FAILED at 0 | |||
|
293 | 1 out of 1 hunks FAILED -- saving rejects to file baz.rej | |||
|
294 | patch failed to apply | |||
|
295 | abort: fix up the merge and run hg transplant --continue | |||
|
296 | [255] | |||
|
297 | $ echo fixed > baz | |||
|
298 | $ hg transplant --continue | |||
|
299 | 9d6d6b5a8275 transplanted as d80c49962290 | |||
|
300 | applying 1dab759070cf | |||
|
301 | 1dab759070cf transplanted to aa0ffe6bd5ae | |||
|
302 | ||||
272 | $ cd .. |
|
303 | $ cd .. | |
273 |
|
304 | |||
274 | Issue1111: Test transplant --merge |
|
305 | Issue1111: Test transplant --merge |
General Comments 0
You need to be logged in to leave comments.
Login now