Mercurial > public > mercurial-scm > hg
comparison mercurial/merge.py @ 45286:00e9c5edcd58
merge: pass mergeresult obj instead of actions dict in _resolvetrivial()
Differential Revision: https://phab.mercurial-scm.org/D8824
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Fri, 24 Jul 2020 17:52:33 +0530 |
parents | e7196f1da2b1 |
children | 4ad6c4e9e35f |
comparison
equal
deleted
inserted
replaced
45285:e7196f1da2b1 | 45286:00e9c5edcd58 |
---|---|
957 | 957 |
958 mresult.updatevalues(diverge, renamedelete, commitinfo) | 958 mresult.updatevalues(diverge, renamedelete, commitinfo) |
959 return mresult | 959 return mresult |
960 | 960 |
961 | 961 |
962 def _resolvetrivial(repo, wctx, mctx, ancestor, actions): | 962 def _resolvetrivial(repo, wctx, mctx, ancestor, mresult): |
963 """Resolves false conflicts where the nodeid changed but the content | 963 """Resolves false conflicts where the nodeid changed but the content |
964 remained the same.""" | 964 remained the same.""" |
965 # We force a copy of actions.items() because we're going to mutate | 965 # We force a copy of actions.items() because we're going to mutate |
966 # actions as we resolve trivial conflicts. | 966 # actions as we resolve trivial conflicts. |
967 for f, (m, args, msg) in list(actions.items()): | 967 for f, (m, args, msg) in list(mresult.actions.items()): |
968 if ( | 968 if ( |
969 m == mergestatemod.ACTION_CHANGED_DELETED | 969 m == mergestatemod.ACTION_CHANGED_DELETED |
970 and f in ancestor | 970 and f in ancestor |
971 and not wctx[f].cmp(ancestor[f]) | 971 and not wctx[f].cmp(ancestor[f]) |
972 ): | 972 ): |
973 # local did change but ended up with same content | 973 # local did change but ended up with same content |
974 actions[f] = mergestatemod.ACTION_REMOVE, None, b'prompt same' | 974 mresult.addfile( |
975 f, mergestatemod.ACTION_REMOVE, None, b'prompt same' | |
976 ) | |
975 elif ( | 977 elif ( |
976 m == mergestatemod.ACTION_DELETED_CHANGED | 978 m == mergestatemod.ACTION_DELETED_CHANGED |
977 and f in ancestor | 979 and f in ancestor |
978 and not mctx[f].cmp(ancestor[f]) | 980 and not mctx[f].cmp(ancestor[f]) |
979 ): | 981 ): |
980 # remote did change but ended up with same content | 982 # remote did change but ended up with same content |
981 del actions[f] # don't get = keep local deleted | 983 mresult.removefile(f) # don't get = keep local deleted |
982 | 984 |
983 | 985 |
984 def calculateupdates( | 986 def calculateupdates( |
985 repo, | 987 repo, |
986 wctx, | 988 wctx, |
1125 mresult.actions.update(fractions) | 1127 mresult.actions.update(fractions) |
1126 | 1128 |
1127 prunedactions = sparse.filterupdatesactions( | 1129 prunedactions = sparse.filterupdatesactions( |
1128 repo, wctx, mctx, branchmerge, mresult.actions | 1130 repo, wctx, mctx, branchmerge, mresult.actions |
1129 ) | 1131 ) |
1130 _resolvetrivial(repo, wctx, mctx, ancestors[0], mresult.actions) | 1132 _resolvetrivial(repo, wctx, mctx, ancestors[0], mresult) |
1131 | 1133 |
1132 mresult.setactions(prunedactions) | 1134 mresult.setactions(prunedactions) |
1133 return mresult | 1135 return mresult |
1134 | 1136 |
1135 | 1137 |