522 _checkcollision(p2) |
522 _checkcollision(p2) |
523 action += _forgetremoved(wc, p2, branchmerge) |
523 action += _forgetremoved(wc, p2, branchmerge) |
524 action += manifestmerge(repo, wc, p2, pa, overwrite, partial) |
524 action += manifestmerge(repo, wc, p2, pa, overwrite, partial) |
525 |
525 |
526 ### apply phase |
526 ### apply phase |
527 if not branchmerge: # just jump to the new rev |
527 if not branchmerge or fastforward: # just jump to the new rev |
528 fp1, fp2, xp1, xp2 = fp2, nullid, xp2, '' |
528 fp1, fp2, xp1, xp2 = fp2, nullid, xp2, '' |
529 if not partial: |
529 if not partial: |
530 repo.hook('preupdate', throw=True, parent1=xp1, parent2=xp2) |
530 repo.hook('preupdate', throw=True, parent1=xp1, parent2=xp2) |
531 |
531 |
532 stats = applyupdates(repo, action, wc, p2, pa) |
532 stats = applyupdates(repo, action, wc, p2, pa) |
533 |
533 |
534 if not partial: |
534 if not partial: |
535 repo.dirstate.setparents(fp1, fp2) |
535 repo.dirstate.setparents(fp1, fp2) |
536 recordupdates(repo, action, branchmerge) |
536 recordupdates(repo, action, branchmerge and not fastforward) |
537 if not branchmerge and not fastforward: |
537 if not branchmerge and not fastforward: |
538 repo.dirstate.setbranch(p2.branch()) |
538 repo.dirstate.setbranch(p2.branch()) |
539 finally: |
539 finally: |
540 wlock.release() |
540 wlock.release() |
541 |
541 |