diff --git a/contrib/simplemerge b/contrib/simplemerge --- a/contrib/simplemerge +++ b/contrib/simplemerge @@ -83,6 +83,10 @@ if len(opts[b'label']) > 2: opts[b'mode'] = b'merge3' local, base, other = args + overrides = opts[b'label'] + labels = [local, other, base] + labels[: len(overrides)] = overrides + opts[b'label'] = labels sys.exit( simplemerge.simplemerge( uimod.ui.load(), diff --git a/mercurial/simplemerge.py b/mercurial/simplemerge.py --- a/mercurial/simplemerge.py +++ b/mercurial/simplemerge.py @@ -332,10 +332,10 @@ return text -def _picklabels(defaults, overrides): +def _picklabels(overrides): if len(overrides) > 3: raise error.Abort(_(b"can only specify three labels.")) - result = defaults[:] + result = [None, None, None] for i, override in enumerate(overrides): result[i] = override return result @@ -501,9 +501,7 @@ elif mode == b'other': lines = _resolve(m3, (2,)) else: - name_a, name_b, name_base = _picklabels( - [localctx.path(), otherctx.path(), None], opts.get('label', []) - ) + name_a, name_b, name_base = _picklabels(opts.get('label', [])) if mode == b'mergediff': lines, conflicts = render_mergediff(m3, name_a, name_b, name_base) else: