From 11f3aa2305426d11945c72479d24a15d30768d50 Mon Sep 17 00:00:00 2001 From: Bert Wesarg Date: Mon, 1 Mar 2010 22:46:27 +0100 Subject: 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 Signed-off-by: Junio C Hamano --- Documentation/git-merge-file.txt | 5 +++-- builtin-merge-file.c | 2 ++ t/t6023-merge-file.sh | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/Documentation/git-merge-file.txt b/Documentation/git-merge-file.txt index 234269ae59..a5b9c1f6c8 100644 --- a/Documentation/git-merge-file.txt +++ b/Documentation/git-merge-file.txt @@ -10,7 +10,7 @@ SYNOPSIS -------- [verse] 'git merge-file' [-L [-L [-L ]]] - [--ours|--theirs] [-p|--stdout] [-q|--quiet] + [--ours|--theirs] [-p|--stdout] [-q|--quiet] [--marker-size=] @@ -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 the alternatives. When `--ours` or `--theirs` option is in effect, however, these conflicts are resolved favouring lines from `` or -lines from `` respectively. +lines from `` 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 conflicts otherwise. If the merge was clean, the exit value is 0. diff --git a/builtin-merge-file.c b/builtin-merge-file.c index cca81c2dde..fec15cc1ff 100644 --- a/builtin-merge-file.c +++ b/builtin-merge-file.c @@ -36,6 +36,8 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix) XDL_MERGE_FAVOR_OURS), OPT_SET_INT(0, "theirs", &xmp.favor, "for conflicts, use their version", XDL_MERGE_FAVOR_THEIRS), + OPT_INTEGER(0, "marker-size", &xmp.marker_size, + "for conflicts, use this marker size"), OPT__QUIET(&quiet), OPT_CALLBACK('L', NULL, names, "name", "set labels for file1/orig_file/file2", &label_cb), diff --git a/t/t6023-merge-file.sh b/t/t6023-merge-file.sh index 6291307cd0..9c5ef68d8c 100755 --- a/t/t6023-merge-file.sh +++ b/t/t6023-merge-file.sh @@ -211,4 +211,41 @@ test_expect_success '"diff3 -m" style output (2)' ' 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 -- cgit v1.2.3