Mercurial > hg-stable
comparison hgext/rebase.py @ 18549:12de53323e59 stable
rebase: derive node from target rev (issue3802)
dest.rev() is the same as target when a new rebase is run, but dest
isn't set when rebase --continue is run. Bug introduced in 2a1fac3650a5,
which fixed issue3685.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Sun, 03 Feb 2013 14:26:39 -0800 |
parents | 0324a1d88a53 |
children | 3e92772d5383 72412afe4c28 |
comparison
equal
deleted
inserted
replaced
18534:151f78a07607 | 18549:12de53323e59 |
---|---|
314 # Nodeids are needed to reset bookmarks | 314 # Nodeids are needed to reset bookmarks |
315 nstate = {} | 315 nstate = {} |
316 for k, v in state.iteritems(): | 316 for k, v in state.iteritems(): |
317 if v > nullmerge: | 317 if v > nullmerge: |
318 nstate[repo[k].node()] = repo[v].node() | 318 nstate[repo[k].node()] = repo[v].node() |
319 # XXX this is the same as dest.node() for the non-continue path -- | |
320 # this should probably be cleaned up | |
321 targetnode = repo[target].node() | |
319 | 322 |
320 if not keepf: | 323 if not keepf: |
321 collapsedas = None | 324 collapsedas = None |
322 if collapsef: | 325 if collapsef: |
323 collapsedas = newrev | 326 collapsedas = newrev |
324 clearrebased(ui, repo, state, skipped, collapsedas) | 327 clearrebased(ui, repo, state, skipped, collapsedas) |
325 | 328 |
326 if currentbookmarks: | 329 if currentbookmarks: |
327 updatebookmarks(repo, dest, nstate, currentbookmarks) | 330 updatebookmarks(repo, targetnode, nstate, currentbookmarks) |
328 | 331 |
329 clearstatus(repo) | 332 clearstatus(repo) |
330 ui.note(_("rebase completed\n")) | 333 ui.note(_("rebase completed\n")) |
331 util.unlinkpath(repo.sjoin('undo'), ignoremissing=True) | 334 util.unlinkpath(repo.sjoin('undo'), ignoremissing=True) |
332 if skipped: | 335 if skipped: |
499 if mq.guard_re.split(s, 1)[0] not in skippedpatches] | 502 if mq.guard_re.split(s, 1)[0] not in skippedpatches] |
500 mq.fullseries[:] = newseries | 503 mq.fullseries[:] = newseries |
501 mq.seriesdirty = True | 504 mq.seriesdirty = True |
502 mq.savedirty() | 505 mq.savedirty() |
503 | 506 |
504 def updatebookmarks(repo, dest, nstate, originalbookmarks): | 507 def updatebookmarks(repo, targetnode, nstate, originalbookmarks): |
505 'Move bookmarks to their correct changesets, and delete divergent ones' | 508 'Move bookmarks to their correct changesets, and delete divergent ones' |
506 destnode = dest.node() | |
507 marks = repo._bookmarks | 509 marks = repo._bookmarks |
508 for k, v in originalbookmarks.iteritems(): | 510 for k, v in originalbookmarks.iteritems(): |
509 if v in nstate: | 511 if v in nstate: |
510 # update the bookmarks for revs that have moved | 512 # update the bookmarks for revs that have moved |
511 marks[k] = nstate[v] | 513 marks[k] = nstate[v] |
512 bookmarks.deletedivergent(repo, [destnode], k) | 514 bookmarks.deletedivergent(repo, [targetnode], k) |
513 | 515 |
514 marks.write() | 516 marks.write() |
515 | 517 |
516 def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches, | 518 def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches, |
517 external): | 519 external): |