mercurial/merge.py
changeset 47372 9e6e12e1a87e
parent 47012 d55b71393907
child 47609 c8d6e23fb14a
equal deleted inserted replaced
47371:298d4400ea68 47372:9e6e12e1a87e
  1722     updated += msupdated
  1722     updated += msupdated
  1723     merged += msmerged
  1723     merged += msmerged
  1724     removed += msremoved
  1724     removed += msremoved
  1725 
  1725 
  1726     extraactions = ms.actions()
  1726     extraactions = ms.actions()
  1727     if extraactions:
       
  1728         for k, acts in pycompat.iteritems(extraactions):
       
  1729             for a in acts:
       
  1730                 mresult.addfile(a[0], k, *a[1:])
       
  1731             if k == mergestatemod.ACTION_GET and wantfiledata:
       
  1732                 # no filedata until mergestate is updated to provide it
       
  1733                 for a in acts:
       
  1734                     getfiledata[a[0]] = None
       
  1735 
  1727 
  1736     progress.complete()
  1728     progress.complete()
  1737     assert len(getfiledata) == (
  1729     return (
  1738         mresult.len((mergestatemod.ACTION_GET,)) if wantfiledata else 0
  1730         updateresult(updated, merged, removed, unresolved),
       
  1731         getfiledata,
       
  1732         extraactions,
  1739     )
  1733     )
  1740     return updateresult(updated, merged, removed, unresolved), getfiledata
       
  1741 
  1734 
  1742 
  1735 
  1743 def _advertisefsmonitor(repo, num_gets, p1node):
  1736 def _advertisefsmonitor(repo, num_gets, p1node):
  1744     # Advertise fsmonitor when its presence could be useful.
  1737     # Advertise fsmonitor when its presence could be useful.
  1745     #
  1738     #
  2120         _advertisefsmonitor(
  2113         _advertisefsmonitor(
  2121             repo, mresult.len((mergestatemod.ACTION_GET,)), p1.node()
  2114             repo, mresult.len((mergestatemod.ACTION_GET,)), p1.node()
  2122         )
  2115         )
  2123 
  2116 
  2124         wantfiledata = updatedirstate and not branchmerge
  2117         wantfiledata = updatedirstate and not branchmerge
  2125         stats, getfiledata = applyupdates(
  2118         stats, getfiledata, extraactions = applyupdates(
  2126             repo,
  2119             repo,
  2127             mresult,
  2120             mresult,
  2128             wc,
  2121             wc,
  2129             p2,
  2122             p2,
  2130             overwrite,
  2123             overwrite,
  2131             wantfiledata,
  2124             wantfiledata,
  2132             labels=labels,
  2125             labels=labels,
  2133         )
  2126         )
  2134 
  2127 
  2135         if updatedirstate:
  2128         if updatedirstate:
       
  2129             if extraactions:
       
  2130                 for k, acts in pycompat.iteritems(extraactions):
       
  2131                     for a in acts:
       
  2132                         mresult.addfile(a[0], k, *a[1:])
       
  2133                     if k == mergestatemod.ACTION_GET and wantfiledata:
       
  2134                         # no filedata until mergestate is updated to provide it
       
  2135                         for a in acts:
       
  2136                             getfiledata[a[0]] = None
       
  2137 
       
  2138             assert len(getfiledata) == (
       
  2139                 mresult.len((mergestatemod.ACTION_GET,)) if wantfiledata else 0
       
  2140             )
  2136             with repo.dirstate.parentchange():
  2141             with repo.dirstate.parentchange():
  2137                 repo.setparents(fp1, fp2)
  2142                 repo.setparents(fp1, fp2)
  2138                 mergestatemod.recordupdates(
  2143                 mergestatemod.recordupdates(
  2139                     repo, mresult.actionsdict, branchmerge, getfiledata
  2144                     repo, mresult.actionsdict, branchmerge, getfiledata
  2140                 )
  2145                 )