Patchwork D383: simplemerge: simplify code now that we always write to a context

login
register
mail settings
Submitter phabricator
Date Aug. 17, 2017, 6:40 p.m.
Message ID <cbac2a0b7b8049dd90f3df3f3402e9ef@localhost.localdomain>
Download mbox | patch
Permalink /patch/23107/
State Not Applicable
Headers show

Comments

phabricator - Aug. 17, 2017, 6:40 p.m.
phillco updated this revision to Diff 1043.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D383?vs=864&id=1043

REVISION DETAIL
  https://phab.mercurial-scm.org/D383

AFFECTED FILES
  mercurial/simplemerge.py

CHANGE DETAILS




To: phillco, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/simplemerge.py b/mercurial/simplemerge.py
--- a/mercurial/simplemerge.py
+++ b/mercurial/simplemerge.py
@@ -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