mercurial/merge.py
changeset 4410 bbc97d419b16
parent 4404 47371e1c1db4
child 4417 0912d8df5e19
equal deleted inserted replaced
4409:28b7d949ef6a 4410:bbc97d419b16
   487     forcemerge = force and branchmerge
   487     forcemerge = force and branchmerge
   488     pl = wc.parents()
   488     pl = wc.parents()
   489     p1, p2 = pl[0], repo.changectx(node)
   489     p1, p2 = pl[0], repo.changectx(node)
   490     pa = p1.ancestor(p2)
   490     pa = p1.ancestor(p2)
   491     fp1, fp2, xp1, xp2 = p1.node(), p2.node(), str(p1), str(p2)
   491     fp1, fp2, xp1, xp2 = p1.node(), p2.node(), str(p1), str(p2)
       
   492     fastforward = False
   492 
   493 
   493     ### check phase
   494     ### check phase
   494     if not overwrite and len(pl) > 1:
   495     if not overwrite and len(pl) > 1:
   495         raise util.Abort(_("outstanding uncommitted merges"))
   496         raise util.Abort(_("outstanding uncommitted merges"))
   496     if pa == p1 or pa == p2: # is there a linear path from p1 to p2?
   497     if pa == p1 or pa == p2: # is there a linear path from p1 to p2?
   497         if branchmerge:
   498         if branchmerge:
   498             raise util.Abort(_("there is nothing to merge, just use "
   499             if p1.branch() != p2.branch():
   499                                "'hg update' or look at 'hg heads'"))
   500                 fastforward = True
       
   501                 branchmerge = False
       
   502             else:
       
   503                 raise util.Abort(_("there is nothing to merge, just use "
       
   504                                    "'hg update' or look at 'hg heads'"))
   500     elif not (overwrite or branchmerge):
   505     elif not (overwrite or branchmerge):
   501         raise util.Abort(_("update spans branches, use 'hg merge' "
   506         raise util.Abort(_("update spans branches, use 'hg merge' "
   502                            "or 'hg update -C' to lose changes"))
   507                            "or 'hg update -C' to lose changes"))
   503     if branchmerge and not forcemerge:
   508     if branchmerge and not forcemerge:
   504         if wc.files():
   509         if wc.files():
   523     stats = applyupdates(repo, action, wc, p2)
   528     stats = applyupdates(repo, action, wc, p2)
   524 
   529 
   525     if not partial:
   530     if not partial:
   526         recordupdates(repo, action, branchmerge)
   531         recordupdates(repo, action, branchmerge)
   527         repo.dirstate.setparents(fp1, fp2)
   532         repo.dirstate.setparents(fp1, fp2)
   528         if not branchmerge:
   533         if not branchmerge and not fastforward:
   529             repo.dirstate.setbranch(p2.branch())
   534             repo.dirstate.setbranch(p2.branch())
   530         repo.hook('update', parent1=xp1, parent2=xp2, error=stats[3])
   535         repo.hook('update', parent1=xp1, parent2=xp2, error=stats[3])
   531 
   536 
   532     return stats
   537     return stats
   533 
   538