Show More
@@ -563,7 +563,10 b' class mergeresult(object):' | |||||
563 | It has information about what actions need to be performed on dirstate |
|
563 | It has information about what actions need to be performed on dirstate | |
564 | mapping of divergent renames and other such cases. ''' |
|
564 | mapping of divergent renames and other such cases. ''' | |
565 |
|
565 | |||
566 |
NO_OP_ACTIONS = ( |
|
566 | NO_OP_ACTIONS = ( | |
|
567 | mergestatemod.ACTION_KEEP, | |||
|
568 | mergestatemod.ACTION_KEEP_ABSENT, | |||
|
569 | ) | |||
567 |
|
570 | |||
568 | def __init__(self): |
|
571 | def __init__(self): | |
569 | """ |
|
572 | """ | |
@@ -1176,6 +1179,11 b' def calculateupdates(' | |||||
1176 | repo.ui.note(_(b" %s: picking 'keep' action\n") % f) |
|
1179 | repo.ui.note(_(b" %s: picking 'keep' action\n") % f) | |
1177 | mresult.addfile(f, *bids[mergestatemod.ACTION_KEEP][0]) |
|
1180 | mresult.addfile(f, *bids[mergestatemod.ACTION_KEEP][0]) | |
1178 | continue |
|
1181 | continue | |
|
1182 | # If keep absent is an option, just do that | |||
|
1183 | if mergestatemod.ACTION_KEEP_ABSENT in bids: | |||
|
1184 | repo.ui.note(_(b" %s: picking 'keep absent' action\n") % f) | |||
|
1185 | mresult.addfile(f, *bids[mergestatemod.ACTION_KEEP_ABSENT][0]) | |||
|
1186 | continue | |||
1179 | # If there are gets and they all agree [how could they not?], do it. |
|
1187 | # If there are gets and they all agree [how could they not?], do it. | |
1180 | if mergestatemod.ACTION_GET in bids: |
|
1188 | if mergestatemod.ACTION_GET in bids: | |
1181 | ga0 = bids[mergestatemod.ACTION_GET][0] |
|
1189 | ga0 = bids[mergestatemod.ACTION_GET][0] | |
@@ -1530,6 +1538,11 b' def applyupdates(' | |||||
1530 | ): |
|
1538 | ): | |
1531 | repo.ui.debug(b" %s: %s -> k\n" % (f, msg)) |
|
1539 | repo.ui.debug(b" %s: %s -> k\n" % (f, msg)) | |
1532 | # no progress |
|
1540 | # no progress | |
|
1541 | for f, args, msg in mresult.getactions( | |||
|
1542 | (mergestatemod.ACTION_KEEP_ABSENT,), sort=True | |||
|
1543 | ): | |||
|
1544 | repo.ui.debug(b" %s: %s -> ka\n" % (f, msg)) | |||
|
1545 | # no progress | |||
1533 |
|
1546 | |||
1534 | # directory rename, move local |
|
1547 | # directory rename, move local | |
1535 | for f, args, msg in mresult.getactions( |
|
1548 | for f, args, msg in mresult.getactions( |
@@ -120,6 +120,10 b" ACTION_MERGE = b'm'" | |||||
120 | ACTION_LOCAL_DIR_RENAME_GET = b'dg' |
|
120 | ACTION_LOCAL_DIR_RENAME_GET = b'dg' | |
121 | ACTION_DIR_RENAME_MOVE_LOCAL = b'dm' |
|
121 | ACTION_DIR_RENAME_MOVE_LOCAL = b'dm' | |
122 | ACTION_KEEP = b'k' |
|
122 | ACTION_KEEP = b'k' | |
|
123 | # the file was absent on local side before merge and we should | |||
|
124 | # keep it absent (absent means file not present, it can be a result | |||
|
125 | # of file deletion, rename etc.) | |||
|
126 | ACTION_KEEP_ABSENT = b'ka' | |||
123 | ACTION_EXEC = b'e' |
|
127 | ACTION_EXEC = b'e' | |
124 | ACTION_CREATED_MERGE = b'cm' |
|
128 | ACTION_CREATED_MERGE = b'cm' | |
125 |
|
129 | |||
@@ -837,6 +841,10 b' def recordupdates(repo, actions, branchm' | |||||
837 | for f, args, msg in actions.get(ACTION_KEEP, []): |
|
841 | for f, args, msg in actions.get(ACTION_KEEP, []): | |
838 | pass |
|
842 | pass | |
839 |
|
843 | |||
|
844 | # keep deleted | |||
|
845 | for f, args, msg in actions.get(ACTION_KEEP_ABSENT, []): | |||
|
846 | pass | |||
|
847 | ||||
840 | # get |
|
848 | # get | |
841 | for f, args, msg in actions.get(ACTION_GET, []): |
|
849 | for f, args, msg in actions.get(ACTION_GET, []): | |
842 | if branchmerge: |
|
850 | if branchmerge: |
General Comments 0
You need to be logged in to leave comments.
Login now