[PATCH 4 of 6 V2] merge: let _forgetremoved() work on the file->action dict
Martin von Zweigbergk
martinvonz at google.com
Mon Dec 22 15:36:20 CST 2014
# HG changeset patch
# User Martin von Zweigbergk <martinvonz at google.com>
# Date 1418363929 28800
# Thu Dec 11 21:58:49 2014 -0800
# Node ID fa09171d55b46538a3f6c0cba139a0b328cbd97e
# Parent 8ade20976e1484ad0edffe4e13949f442dce3a5d
merge: let _forgetremoved() work on the file->action dict
By moving the conversion from the file->action dict after
_forgetremoved(), we make that method shorter by removing the need for
the confusing 'xactions' variable.
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -318,20 +318,20 @@
as removed.
"""
- ractions = []
- factions = xactions = []
+ actions = {}
+ m = 'f'
if branchmerge:
- xactions = ractions
+ m = 'r'
for f in wctx.deleted():
if f not in mctx:
- xactions.append((f, None, "forget deleted"))
+ actions[f] = m, None, "forget deleted"
if not branchmerge:
for f in wctx.removed():
if f not in mctx:
- factions.append((f, None, "forget removed"))
+ actions[f] = 'f', None, "forget removed"
- return ractions, factions
+ return actions
def _checkcollision(repo, wmf, actions):
# build provisional merged manifest up
@@ -617,17 +617,16 @@
_resolvetrivial(repo, wctx, mctx, ancestors[0], actions)
+ if wctx.rev() is None:
+ fractions = _forgetremoved(wctx, mctx, branchmerge)
+ actions.update(fractions)
+
# Convert to dictionary-of-lists format
actionbyfile = actions
actions = dict((m, []) for m in 'a f g cd dc r dm dg m e k'.split())
for f, (m, args, msg) in actionbyfile.iteritems():
actions[m].append((f, args, msg))
- if wctx.rev() is None:
- ractions, factions = _forgetremoved(wctx, mctx, branchmerge)
- actions['r'].extend(ractions)
- actions['f'].extend(factions)
-
return actions, diverge, renamedelete
def batchremove(repo, actions):
More information about the Mercurial-devel
mailing list