Skip to content
Snippets Groups Projects
Commit a771ffc378a8 authored by Martin von Zweigbergk's avatar Martin von Zweigbergk
Browse files

simplemerge: write output only once it's complete

`simplemerge()` can write either to `ui.fout` or to the file context
(for in-memory merge). This patch simplifies the code a bit by making
it build the output the same way regardless of where it's written, and
then writes the whole output at once. I don't think it will be a
problem that we don't output anything until the whole file is merged
even if the file is large.

Differential Revision: https://phab.mercurial-scm.org/D9550
parent fd75e5c53ec3
No related branches found
No related tags found
No related merge requests found
......@@ -499,6 +499,5 @@
extrakwargs[b'name_base'] = name_base
extrakwargs[b'minimize'] = False
lines = []
for line in m3.merge_lines(
lines = m3.merge_lines(
name_a=name_a, name_b=name_b, **pycompat.strkwargs(extrakwargs)
......@@ -504,9 +503,5 @@
name_a=name_a, name_b=name_b, **pycompat.strkwargs(extrakwargs)
):
if opts.get('print'):
ui.fout.write(line)
else:
lines.append(line)
)
# merge flags if necessary
flags = localctx.flags()
......@@ -518,8 +513,10 @@
addedflags = (localflags ^ otherflags) - baseflags
flags = b''.join(sorted(commonflags | addedflags))
if not opts.get('print'):
mergedtext = b''.join(lines)
mergedtext = b''.join(lines)
if opts.get('print'):
ui.fout.write(mergedtext)
else:
localctx.write(mergedtext, flags)
if m3.conflicts and not mode == b'union':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment