comparison mercurial/merge.py @ 45281:fe2040abb183

merge: make mergeresult constructor initialize empty object In future patches, we will be going to update mergeresult object instead of building an actions dict and then setting it in the object. Differential Revision: https://phab.mercurial-scm.org/D8819
author Pulkit Goyal <7895pulkit@gmail.com>
date Fri, 24 Jul 2020 15:56:11 +0530
parents 98218c83242f
children b442920ab1de
comparison
equal deleted inserted replaced
45280:98218c83242f 45281:fe2040abb183
544 ''''An object representing result of merging manifests. 544 ''''An object representing result of merging manifests.
545 545
546 It has information about what actions need to be performed on dirstate 546 It has information about what actions need to be performed on dirstate
547 mapping of divergent renames and other such cases. ''' 547 mapping of divergent renames and other such cases. '''
548 548
549 def __init__(self, actions, diverge, renamedelete, commitinfo): 549 def __init__(self):
550 """ 550 """
551 actions: dict of filename as keys and action related info as values 551 actions: dict of filename as keys and action related info as values
552 diverge: mapping of source name -> list of dest name for 552 diverge: mapping of source name -> list of dest name for
553 divergent renames 553 divergent renames
554 renamedelete: mapping of source name -> list of destinations for files 554 renamedelete: mapping of source name -> list of destinations for files
555 deleted on one side and renamed on other. 555 deleted on one side and renamed on other.
556 commitinfo: dict containing data which should be used on commit 556 commitinfo: dict containing data which should be used on commit
557 contains a filename -> info mapping 557 contains a filename -> info mapping
558 """ 558 """
559 559 self._actions = {}
560 self._diverge = {}
561 self._renamedelete = {}
562 self._commitinfo = {}
563
564 def updatevalues(self, actions, diverge, renamedelete, commitinfo):
560 self._actions = actions 565 self._actions = actions
561 self._diverge = diverge 566 self._diverge = diverge
562 self._renamedelete = renamedelete 567 self._renamedelete = renamedelete
563 self._commitinfo = commitinfo 568 self._commitinfo = commitinfo
564 569
912 _filternarrowactions(narrowmatch, branchmerge, actions) 917 _filternarrowactions(narrowmatch, branchmerge, actions)
913 918
914 renamedelete = branch_copies1.renamedelete 919 renamedelete = branch_copies1.renamedelete
915 renamedelete.update(branch_copies2.renamedelete) 920 renamedelete.update(branch_copies2.renamedelete)
916 921
917 return mergeresult(actions, diverge, renamedelete, commitinfo) 922 mresult = mergeresult()
923 mresult.updatevalues(actions, diverge, renamedelete, commitinfo)
924 return mresult
918 925
919 926
920 def _resolvetrivial(repo, wctx, mctx, ancestor, actions): 927 def _resolvetrivial(repo, wctx, mctx, ancestor, actions):
921 """Resolves false conflicts where the nodeid changed but the content 928 """Resolves false conflicts where the nodeid changed but the content
922 remained the same.""" 929 remained the same."""
963 Returns mergeresult object same as manifestmerge(). 970 Returns mergeresult object same as manifestmerge().
964 """ 971 """
965 # Avoid cycle. 972 # Avoid cycle.
966 from . import sparse 973 from . import sparse
967 974
975 mresult = None
968 if len(ancestors) == 1: # default 976 if len(ancestors) == 1: # default
969 mresult = manifestmerge( 977 mresult = manifestmerge(
970 repo, 978 repo,
971 wctx, 979 wctx,
972 mctx, 980 mctx,
1073 ) 1081 )
1074 actions[f] = l[0] 1082 actions[f] = l[0]
1075 continue 1083 continue
1076 repo.ui.note(_(b'end of auction\n\n')) 1084 repo.ui.note(_(b'end of auction\n\n'))
1077 # TODO: think about commitinfo when bid merge is used 1085 # TODO: think about commitinfo when bid merge is used
1078 mresult = mergeresult(actions, diverge, renamedelete, {}) 1086 mresult = mergeresult()
1087 mresult.updatevalues(actions, diverge, renamedelete, {})
1079 1088
1080 if wctx.rev() is None: 1089 if wctx.rev() is None:
1081 fractions = _forgetremoved(wctx, mctx, branchmerge) 1090 fractions = _forgetremoved(wctx, mctx, branchmerge)
1082 mresult.actions.update(fractions) 1091 mresult.actions.update(fractions)
1083 1092