Show More
@@ -100,9 +100,9 b' class Merge3Text(object):' | |||||
100 | newline = '\r\n' |
|
100 | newline = '\r\n' | |
101 | elif self.a[0].endswith('\r'): |
|
101 | elif self.a[0].endswith('\r'): | |
102 | newline = '\r' |
|
102 | newline = '\r' | |
103 | if name_a: |
|
103 | if name_a and start_marker: | |
104 | start_marker = start_marker + ' ' + name_a |
|
104 | start_marker = start_marker + ' ' + name_a | |
105 | if name_b: |
|
105 | if name_b and end_marker: | |
106 | end_marker = end_marker + ' ' + name_b |
|
106 | end_marker = end_marker + ' ' + name_b | |
107 | if name_base and base_marker: |
|
107 | if name_base and base_marker: | |
108 | base_marker = base_marker + ' ' + name_base |
|
108 | base_marker = base_marker + ' ' + name_base | |
@@ -120,17 +120,20 b' class Merge3Text(object):' | |||||
120 | yield self.b[i] |
|
120 | yield self.b[i] | |
121 | elif what == 'conflict': |
|
121 | elif what == 'conflict': | |
122 | self.conflicts = True |
|
122 | self.conflicts = True | |
123 |
|
|
123 | if start_marker is not None: | |
|
124 | yield start_marker + newline | |||
124 | for i in range(t[3], t[4]): |
|
125 | for i in range(t[3], t[4]): | |
125 | yield self.a[i] |
|
126 | yield self.a[i] | |
126 | if base_marker is not None: |
|
127 | if base_marker is not None: | |
127 | yield base_marker + newline |
|
128 | yield base_marker + newline | |
128 | for i in range(t[1], t[2]): |
|
129 | for i in range(t[1], t[2]): | |
129 | yield self.base[i] |
|
130 | yield self.base[i] | |
130 |
|
|
131 | if mid_marker is not None: | |
|
132 | yield mid_marker + newline | |||
131 | for i in range(t[5], t[6]): |
|
133 | for i in range(t[5], t[6]): | |
132 | yield self.b[i] |
|
134 | yield self.b[i] | |
133 |
|
|
135 | if end_marker is not None: | |
|
136 | yield end_marker + newline | |||
134 | else: |
|
137 | else: | |
135 | raise ValueError(what) |
|
138 | raise ValueError(what) | |
136 |
|
139 | |||
@@ -353,18 +356,24 b' def simplemerge(ui, local, base, other, ' | |||||
353 | raise util.Abort(msg) |
|
356 | raise util.Abort(msg) | |
354 | return text |
|
357 | return text | |
355 |
|
358 | |||
356 | name_a = local |
|
359 | mode = opts.get('mode','merge') | |
357 | name_b = other |
|
360 | if mode == 'union': | |
358 |
name_ |
|
361 | name_a = None | |
359 | labels = opts.get('label', []) |
|
362 | name_b = None | |
360 | if len(labels) > 0: |
|
363 | name_base = None | |
361 | name_a = labels[0] |
|
364 | else: | |
362 | if len(labels) > 1: |
|
365 | name_a = local | |
363 |
name_b = |
|
366 | name_b = other | |
364 | if len(labels) > 2: |
|
367 | name_base = None | |
365 | name_base = labels[2] |
|
368 | labels = opts.get('label', []) | |
366 |
if len(labels) > |
|
369 | if len(labels) > 0: | |
367 | raise util.Abort(_("can only specify three labels.")) |
|
370 | name_a = labels[0] | |
|
371 | if len(labels) > 1: | |||
|
372 | name_b = labels[1] | |||
|
373 | if len(labels) > 2: | |||
|
374 | name_base = labels[2] | |||
|
375 | if len(labels) > 3: | |||
|
376 | raise util.Abort(_("can only specify three labels.")) | |||
368 |
|
377 | |||
369 | try: |
|
378 | try: | |
370 | localtext = readfile(local) |
|
379 | localtext = readfile(local) | |
@@ -382,7 +391,11 b' def simplemerge(ui, local, base, other, ' | |||||
382 |
|
391 | |||
383 | m3 = Merge3Text(basetext, localtext, othertext) |
|
392 | m3 = Merge3Text(basetext, localtext, othertext) | |
384 | extrakwargs = {} |
|
393 | extrakwargs = {} | |
385 | if name_base is not None: |
|
394 | if mode == 'union': | |
|
395 | extrakwargs['start_marker'] = None | |||
|
396 | extrakwargs['mid_marker'] = None | |||
|
397 | extrakwargs['end_marker'] = None | |||
|
398 | elif name_base is not None: | |||
386 | extrakwargs['base_marker'] = '|||||||' |
|
399 | extrakwargs['base_marker'] = '|||||||' | |
387 | extrakwargs['name_base'] = name_base |
|
400 | extrakwargs['name_base'] = name_base | |
388 | for line in m3.merge_lines(name_a=name_a, name_b=name_b, **extrakwargs): |
|
401 | for line in m3.merge_lines(name_a=name_a, name_b=name_b, **extrakwargs): | |
@@ -391,7 +404,7 b' def simplemerge(ui, local, base, other, ' | |||||
391 | if not opts.get('print'): |
|
404 | if not opts.get('print'): | |
392 | out.close() |
|
405 | out.close() | |
393 |
|
406 | |||
394 | if m3.conflicts: |
|
407 | if m3.conflicts and not mode == 'union': | |
395 | if not opts.get('quiet'): |
|
408 | if not opts.get('quiet'): | |
396 | ui.warn(_("warning: conflicts during merge.\n")) |
|
409 | ui.warn(_("warning: conflicts during merge.\n")) | |
397 | return 1 |
|
410 | return 1 |
General Comments 0
You need to be logged in to leave comments.
Login now