##// END OF EJS Templates
transplant: do not rollback on patching error (issue3379)...
Patrick Mezard -
r16507:1f020021 stable
parent child Browse files
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:
174 n = self.applyone(repo, node,
177 try:
175 source.changelog.read(node),
178 n = self.applyone(repo, node,
176 patchfile, merge=domerge,
179 source.changelog.read(node),
177 log=opts.get('log'),
180 patchfile, merge=domerge,
178 filter=opts.get('filter'))
181 log=opts.get('log'),
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,8 +268,8 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 util.Abort(_('fix up the merge and run '
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
266 if merge:
275 if merge:
@@ -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 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
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 a1e30dd1b8e7
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 a1e30dd1b8e7
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 a1e30dd1b8e7 transplanted as f1563cf27039
268 46ae92138f3c transplanted as 9159dada197d
262 $ hg transplant 1:3
269 $ hg transplant 1:3
263 skipping already applied revision 1:a1e30dd1b8e7
270 skipping already applied revision 1:46ae92138f3c
264 applying 1739ac5f6139
271 applying 9d6d6b5a8275
265 1739ac5f6139 transplanted to d649c221319f
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