merge-file: add option to specify the marker size

This adds the abbility to specify the conflict marker size for merges outside
a git repository.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Bert Wesarg 2010-03-01 22:46:27 +01:00 committed by Junio C Hamano
parent 560119b9ab
commit 11f3aa2305
3 changed files with 42 additions and 2 deletions

View file

@ -10,7 +10,7 @@ SYNOPSIS
-------- --------
[verse] [verse]
'git merge-file' [-L <current-name> [-L <base-name> [-L <other-name>]]] 'git merge-file' [-L <current-name> [-L <base-name> [-L <other-name>]]]
[--ours|--theirs] [-p|--stdout] [-q|--quiet] [--ours|--theirs] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]
<current-file> <base-file> <other-file> <current-file> <base-file> <other-file>
@ -37,7 +37,8 @@ normally outputs a warning and brackets the conflict with lines containing
If there are conflicts, the user should edit the result and delete one of If there are conflicts, the user should edit the result and delete one of
the alternatives. When `--ours` or `--theirs` option is in effect, however, the alternatives. When `--ours` or `--theirs` option is in effect, however,
these conflicts are resolved favouring lines from `<current-file>` or these conflicts are resolved favouring lines from `<current-file>` or
lines from `<other-file>` respectively. lines from `<other-file>` respectively. The length of the conflict markers
can be given with the `--marker-size` option.
The exit value of this program is negative on error, and the number of The exit value of this program is negative on error, and the number of
conflicts otherwise. If the merge was clean, the exit value is 0. conflicts otherwise. If the merge was clean, the exit value is 0.

View file

@ -36,6 +36,8 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
XDL_MERGE_FAVOR_OURS), XDL_MERGE_FAVOR_OURS),
OPT_SET_INT(0, "theirs", &xmp.favor, "for conflicts, use their version", OPT_SET_INT(0, "theirs", &xmp.favor, "for conflicts, use their version",
XDL_MERGE_FAVOR_THEIRS), XDL_MERGE_FAVOR_THEIRS),
OPT_INTEGER(0, "marker-size", &xmp.marker_size,
"for conflicts, use this marker size"),
OPT__QUIET(&quiet), OPT__QUIET(&quiet),
OPT_CALLBACK('L', NULL, names, "name", OPT_CALLBACK('L', NULL, names, "name",
"set labels for file1/orig_file/file2", &label_cb), "set labels for file1/orig_file/file2", &label_cb),

View file

@ -211,4 +211,41 @@ test_expect_success '"diff3 -m" style output (2)' '
test_cmp expect actual test_cmp expect actual
' '
cat >expect <<\EOF
Dominus regit me,
<<<<<<<<<< new8.txt
et nihil mihi deerit;
In loco pascuae ibi me collocavit;
super aquam refectionis educavit me.
||||||||||
et nihil mihi deerit.
In loco pascuae ibi me collocavit,
super aquam refectionis educavit me;
==========
et nihil mihi deerit,
In loco pascuae ibi me collocavit --
super aquam refectionis educavit me,
>>>>>>>>>> new9.txt
animam meam convertit,
deduxit me super semitas jusitiae,
propter nomen suum.
Nam et si ambulavero in medio umbrae mortis,
non timebo mala, quoniam TU mecum es:
virga tua et baculus tuus ipsa me consolata sunt.
EOF
test_expect_success 'marker size' '
test_must_fail git merge-file -p --marker-size=10 \
new8.txt new5.txt new9.txt >actual &&
test_cmp expect actual
'
test_done test_done