Mercurial > hg
changeset 33908:4074de97b512
simplemerge: simplify code now that we always write to a context
There's no need for an `out` abstraction between files and contexts anymore.
Differential Revision: https://phab.mercurial-scm.org/D383
author | Phil Cohen <phillco@fb.com> |
---|---|
date | Thu, 24 Aug 2017 21:30:51 -0700 |
parents | 1ad3085239ad |
children | 84f72072bde6 |
files | mercurial/simplemerge.py |
diffstat | 1 files changed, 7 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/simplemerge.py Thu Aug 24 21:30:51 2017 -0700 +++ b/mercurial/simplemerge.py Thu Aug 24 21:30:51 2017 -0700 @@ -436,17 +436,6 @@ # repository usually sees) might be more useful. return _verifytext(ctx.decodeddata(), ctx.path(), ui, opts) - class ctxwriter(object): - def __init__(self, ctx): - self.ctx = ctx - self.text = "" - - def write(self, text): - self.text += text - - def close(self): - self.ctx.write(self.text, self.ctx.flags()) - mode = opts.get('mode','merge') name_a, name_b, name_base = None, None, None if mode != 'union': @@ -461,11 +450,6 @@ except error.Abort: return 1 - if opts.get('print'): - out = ui.fout - else: - out = ctxwriter(localctx) - m3 = Merge3Text(basetext, localtext, othertext) extrakwargs = { "localorother": opts.get("localorother", None), @@ -479,12 +463,17 @@ extrakwargs['base_marker'] = '|||||||' extrakwargs['name_base'] = name_base extrakwargs['minimize'] = False + + mergedtext = "" for line in m3.merge_lines(name_a=name_a, name_b=name_b, **pycompat.strkwargs(extrakwargs)): - out.write(line) + if opts.get('print'): + ui.fout.write(line) + else: + mergedtext += line if not opts.get('print'): - out.close() + localctx.write(mergedtext, localctx.flags()) if m3.conflicts and not mode == 'union': return 1