Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/merge.py @ 45302: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
45301:98218c83242f | 45302: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 |