mercurial/hg.py
changeset 42600 3bc400ccbf99
parent 42155 57539e5ea2e0
child 42604 209f2b8a50dc
equal deleted inserted replaced
42599:3fb0493812c0 42600:3bc400ccbf99
   954 
   954 
   955 def merge(repo, node, force=None, remind=True, mergeforce=False, labels=None,
   955 def merge(repo, node, force=None, remind=True, mergeforce=False, labels=None,
   956           abort=False):
   956           abort=False):
   957     """Branch merge with node, resolving changes. Return true if any
   957     """Branch merge with node, resolving changes. Return true if any
   958     unresolved conflicts."""
   958     unresolved conflicts."""
   959     if not abort:
   959     if abort:
   960         stats = mergemod.update(repo, node, branchmerge=True, force=force,
   960         return abortmerge(repo.ui, repo, labels=labels)
   961                                 mergeforce=mergeforce, labels=labels)
   961 
   962     else:
   962     stats = mergemod.update(repo, node, branchmerge=True, force=force,
   963         ms = mergemod.mergestate.read(repo)
   963                             mergeforce=mergeforce, labels=labels)
   964         if ms.active():
       
   965             # there were conflicts
       
   966             node = ms.localctx.hex()
       
   967         else:
       
   968             # there were no conficts, mergestate was not stored
       
   969             node = repo['.'].hex()
       
   970 
       
   971         repo.ui.status(_("aborting the merge, updating back to"
       
   972                          " %s\n") % node[:12])
       
   973         stats = mergemod.update(repo, node, branchmerge=False, force=True,
       
   974                                 labels=labels)
       
   975 
       
   976     _showstats(repo, stats)
   964     _showstats(repo, stats)
   977     if stats.unresolvedcount:
   965     if stats.unresolvedcount:
   978         repo.ui.status(_("use 'hg resolve' to retry unresolved file merges "
   966         repo.ui.status(_("use 'hg resolve' to retry unresolved file merges "
   979                          "or 'hg merge --abort' to abandon\n"))
   967                          "or 'hg merge --abort' to abandon\n"))
   980     elif remind and not abort:
   968     elif remind:
   981         repo.ui.status(_("(branch merge, don't forget to commit)\n"))
   969         repo.ui.status(_("(branch merge, don't forget to commit)\n"))
       
   970     return stats.unresolvedcount > 0
       
   971 
       
   972 def abortmerge(ui, repo, labels=None):
       
   973     ms = mergemod.mergestate.read(repo)
       
   974     if ms.active():
       
   975         # there were conflicts
       
   976         node = ms.localctx.hex()
       
   977     else:
       
   978         # there were no conficts, mergestate was not stored
       
   979         node = repo['.'].hex()
       
   980 
       
   981     repo.ui.status(_("aborting the merge, updating back to"
       
   982                      " %s\n") % node[:12])
       
   983     stats = mergemod.update(repo, node, branchmerge=False, force=True,
       
   984                             labels=labels)
       
   985     _showstats(repo, stats)
   982     return stats.unresolvedcount > 0
   986     return stats.unresolvedcount > 0
   983 
   987 
   984 def _incoming(displaychlist, subreporecurse, ui, repo, source,
   988 def _incoming(displaychlist, subreporecurse, ui, repo, source,
   985         opts, buffered=False):
   989         opts, buffered=False):
   986     """
   990     """