comparison mercurial/simplemerge.py @ 48562:12ac4401ff7d

simplemerge: simplify and rename `render_markers()` `render_markers()` now always renders minimized 2-way markers, so let's simplify and rename it accordingly. Differential Revision: https://phab.mercurial-scm.org/D11979
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 11 Jan 2022 21:56:27 -0800
parents 69e76b2aad3d
children ad0c6bf6f02e
comparison
equal deleted inserted replaced
48561:69e76b2aad3d 48562:12ac4401ff7d
348 elif m3.a[0].endswith(b'\r'): 348 elif m3.a[0].endswith(b'\r'):
349 return b'\r' 349 return b'\r'
350 return b'\n' 350 return b'\n'
351 351
352 352
353 def render_markers( 353 def render_minimized(
354 m3, 354 m3,
355 name_a=None, 355 name_a=None,
356 name_b=None, 356 name_b=None,
357 start_marker=b'<<<<<<<', 357 start_marker=b'<<<<<<<',
358 mid_marker=b'=======', 358 mid_marker=b'=======',
359 end_marker=b'>>>>>>>', 359 end_marker=b'>>>>>>>',
360 minimize=False,
361 ): 360 ):
362 """Return merge in cvs-like form.""" 361 """Return merge in cvs-like form."""
363 newline = _detect_newline(m3) 362 newline = _detect_newline(m3)
364 conflicts = False 363 conflicts = False
365 if name_a and start_marker: 364 if name_a:
366 start_marker = start_marker + b' ' + name_a 365 start_marker = start_marker + b' ' + name_a
367 if name_b and end_marker: 366 if name_b:
368 end_marker = end_marker + b' ' + name_b 367 end_marker = end_marker + b' ' + name_b
369 merge_groups = m3.merge_groups() 368 merge_groups = m3.merge_groups()
370 if minimize: 369 merge_groups = m3.minimize(merge_groups)
371 merge_groups = m3.minimize(merge_groups)
372 lines = [] 370 lines = []
373 for what, group_lines in merge_groups: 371 for what, group_lines in merge_groups:
374 if what == b'conflict': 372 if what == b'conflict':
375 base_lines, a_lines, b_lines = group_lines 373 base_lines, a_lines, b_lines = group_lines
376 conflicts = True 374 conflicts = True
377 if start_marker is not None: 375 lines.append(start_marker + newline)
378 lines.append(start_marker + newline)
379 lines.extend(a_lines) 376 lines.extend(a_lines)
380 if mid_marker is not None: 377 lines.append(mid_marker + newline)
381 lines.append(mid_marker + newline)
382 lines.extend(b_lines) 378 lines.extend(b_lines)
383 if end_marker is not None: 379 lines.append(end_marker + newline)
384 lines.append(end_marker + newline)
385 else: 380 else:
386 lines.extend(group_lines) 381 lines.extend(group_lines)
387 return lines, conflicts 382 return lines, conflicts
388 383
389 384
520 if mode == b'mergediff': 515 if mode == b'mergediff':
521 lines, conflicts = render_mergediff(m3, name_a, name_b, name_base) 516 lines, conflicts = render_mergediff(m3, name_a, name_b, name_base)
522 elif mode == b'merge3': 517 elif mode == b'merge3':
523 lines, conflicts = render_merge3(m3, name_a, name_b, name_base) 518 lines, conflicts = render_merge3(m3, name_a, name_b, name_base)
524 else: 519 else:
525 extrakwargs = { 520 lines, conflicts = render_minimized(m3, name_a, name_b)
526 'minimize': True,
527 }
528 lines, conflicts = render_markers(
529 m3, name_a=name_a, name_b=name_b, **extrakwargs
530 )
531 521
532 mergedtext = b''.join(lines) 522 mergedtext = b''.join(lines)
533 if opts.get('print'): 523 if opts.get('print'):
534 ui.fout.write(mergedtext) 524 ui.fout.write(mergedtext)
535 else: 525 else: