summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Bert Wesarg <bert.wesarg@googlemail.com>2010-03-01 22:46:27 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2010-03-02 21:16:44 -0800
commit11f3aa2305426d11945c72479d24a15d30768d50 (patch)
treea387ab1883e3e0f007ab306217972dde4306f98f
parentrefactor merge flags into xmparam_t (diff)
downloadtgif-11f3aa2305426d11945c72479d24a15d30768d50.tar.xz
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>
-rw-r--r--Documentation/git-merge-file.txt5
-rw-r--r--builtin-merge-file.c2
-rwxr-xr-xt/t6023-merge-file.sh37
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 <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>
@@ -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 `<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
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