From patchwork Mon Dec 22 21:36:20 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [4, of, 6, V2] merge: let _forgetremoved() work on the file->action dict From: Martin von Zweigbergk X-Patchwork-Id: 7196 Message-Id: To: mercurial-devel@selenic.com Cc: Mads Kiilerich , Pierre-Yves David , Augie Fackler Date: Mon, 22 Dec 2014 13:36:20 -0800 # HG changeset patch # User Martin von Zweigbergk # 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):