mercurial/merge.py
changeset 45499 19590b126764
parent 45493 2c10876bb320
child 45518 32ce4cbaec4b
equal deleted inserted replaced
45498:cc5f811b1f15 45499:19590b126764
  1396     """
  1396     """
  1397 
  1397 
  1398     _prefetchfiles(repo, mctx, mresult)
  1398     _prefetchfiles(repo, mctx, mresult)
  1399 
  1399 
  1400     updated, merged, removed = 0, 0, 0
  1400     updated, merged, removed = 0, 0, 0
  1401     ms = mergestatemod.mergestate.clean(repo)
  1401     ms = wctx.mergestate(clean=True)
  1402     ms.start(wctx.p1().node(), mctx.node(), labels)
  1402     ms.start(wctx.p1().node(), mctx.node(), labels)
  1403 
  1403 
  1404     for f, op in pycompat.iteritems(mresult.commitinfo):
  1404     for f, op in pycompat.iteritems(mresult.commitinfo):
  1405         # the other side of filenode was choosen while merging, store this in
  1405         # the other side of filenode was choosen while merging, store this in
  1406         # mergestate so that it can be reused on commit
  1406         # mergestate so that it can be reused on commit
  1609     # driver has changed, and we want to be able to bypass it when overwrite is
  1609     # driver has changed, and we want to be able to bypass it when overwrite is
  1610     # True
  1610     # True
  1611     usemergedriver = not overwrite and mergeactions and ms.mergedriver
  1611     usemergedriver = not overwrite and mergeactions and ms.mergedriver
  1612 
  1612 
  1613     if usemergedriver:
  1613     if usemergedriver:
  1614         if wctx.isinmemory():
       
  1615             raise error.InMemoryMergeConflictsError(
       
  1616                 b"in-memory merge does not support mergedriver"
       
  1617             )
       
  1618         ms.commit()
  1614         ms.commit()
  1619         proceed = driverpreprocess(repo, ms, wctx, labels=labels)
  1615         proceed = driverpreprocess(repo, ms, wctx, labels=labels)
  1620         # the driver might leave some files unresolved
  1616         # the driver might leave some files unresolved
  1621         unresolvedf = set(ms.unresolved())
  1617         unresolvedf = set(ms.unresolved())
  1622         if not proceed:
  1618         if not proceed:
  1893         overwrite = force and not branchmerge
  1889         overwrite = force and not branchmerge
  1894         ### check phase
  1890         ### check phase
  1895         if not overwrite:
  1891         if not overwrite:
  1896             if len(pl) > 1:
  1892             if len(pl) > 1:
  1897                 raise error.Abort(_(b"outstanding uncommitted merge"))
  1893                 raise error.Abort(_(b"outstanding uncommitted merge"))
  1898             ms = mergestatemod.mergestate.read(repo)
  1894             ms = wc.mergestate()
  1899             if list(ms.unresolved()):
  1895             if list(ms.unresolved()):
  1900                 raise error.Abort(
  1896                 raise error.Abort(
  1901                     _(b"outstanding merge conflicts"),
  1897                     _(b"outstanding merge conflicts"),
  1902                     hint=_(b"use 'hg resolve' to resolve"),
  1898                     hint=_(b"use 'hg resolve' to resolve"),
  1903                 )
  1899                 )