Mercurial > hg
changeset 46099:fd75e5c53ec3
simplemerge: avoid quadratic concatenation when building output text
I haven't checked if the difference is measurable, but the new version
is no less readable or idiomatic, so I don't think performance numbers
are needed.
Differential Revision: https://phab.mercurial-scm.org/D9549
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 08 Dec 2020 23:05:53 -0800 |
parents | 5510e2ac213f |
children | a771ffc378a8 |
files | mercurial/simplemerge.py |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/simplemerge.py Tue Dec 08 22:59:17 2020 -0800 +++ b/mercurial/simplemerge.py Tue Dec 08 23:05:53 2020 -0800 @@ -499,14 +499,14 @@ extrakwargs[b'name_base'] = name_base extrakwargs[b'minimize'] = False - mergedtext = b"" + lines = [] for line in m3.merge_lines( name_a=name_a, name_b=name_b, **pycompat.strkwargs(extrakwargs) ): if opts.get('print'): ui.fout.write(line) else: - mergedtext += line + lines.append(line) # merge flags if necessary flags = localctx.flags() @@ -519,6 +519,7 @@ flags = b''.join(sorted(commonflags | addedflags)) if not opts.get('print'): + mergedtext = b''.join(lines) localctx.write(mergedtext, flags) if m3.conflicts and not mode == b'union':