mercurial/simplemerge.py
changeset 48562 12ac4401ff7d
parent 48561 69e76b2aad3d
child 48563 ad0c6bf6f02e
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: