# HG changeset patch # User Martin von Zweigbergk # Date 1512858132 28800 # Node ID dffc35a5be9f52a47fc7732367c234bf5dba9275 # Parent 2123e7629ec03152d79855735360c59396b7f747 debugbuilddag: create filectx instance in 'filectxfn' callback Same motivation is previous patch. Differential Revision: https://phab.mercurial-scm.org/D1670 diff -r 2123e7629ec0 -r dffc35a5be9f mercurial/debugcommands.py --- a/mercurial/debugcommands.py Sat Dec 09 14:15:30 2017 -0800 +++ b/mercurial/debugcommands.py Sat Dec 09 14:22:12 2017 -0800 @@ -183,7 +183,7 @@ id, ps = data files = [] - fctxs = {} + filecontent = {} p2 = None if mergeable_file: @@ -204,27 +204,29 @@ ml[id * linesperrev] += " r%i" % id mergedtext = "\n".join(ml) files.append(fn) - fctxs[fn] = context.memfilectx(repo, fn, mergedtext) + filecontent[fn] = mergedtext if overwritten_file: fn = "of" files.append(fn) - fctxs[fn] = context.memfilectx(repo, fn, "r%i\n" % id) + filecontent[fn] = "r%i\n" % id if new_file: fn = "nf%i" % id files.append(fn) - fctxs[fn] = context.memfilectx(repo, fn, "r%i\n" % id) + filecontent[fn] = "r%i\n" % id if len(ps) > 1: if not p2: p2 = repo[ps[1]] for fn in p2: if fn.startswith("nf"): files.append(fn) - fctxs[fn] = p2[fn] + filecontent[fn] = p2[fn].data() def fctxfn(repo, cx, path): - return fctxs.get(path) + if path in filecontent: + return context.memfilectx(repo, path, filecontent[path]) + return None if len(ps) == 0 or ps[0] < 0: pars = [None, None]