mirror of
https://github.com/git/git.git
synced 2024-11-24 10:26:17 +08:00
checkout --conflict=diff3: add a label for ancestor
git checkout --conflict=diff3 can be used to present conflicts hunks including text from the common ancestor: <<<<<<< ours ourside ||||||| original ======= theirside >>>>>>> theirs The added information is helpful for resolving a merge by hand, and merge tools can usually understand it without trouble because it looks like output from ‘diff3 -m’. diff3 includes a label for the merge base on the ||||||| line, and it seems some tools (for example, Emacs 22’s smerge-mode) cannot parse conflict hunks without such a label. Humans could use help in interpreting the output, too. So change the marker for the start of the text from the common ancestor to include the label “base”. git rerere’s conflict identifiers are not affected: to parse conflict hunks, rerere looks for whitespace after the ||||||| marker rather than a newline, and to compute preimage ids, rerere has its own code for creating conflict hunks. No other code in git tries to parse conflict hunks. Requested-by: Stefan Monnier <monnier@iro.umontreal.ca> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
f01de62e45
commit
f0531a2937
@ -149,7 +149,7 @@ static int checkout_merged(int pos, struct checkout *state)
|
||||
read_mmblob(&ours, active_cache[pos+1]->sha1);
|
||||
read_mmblob(&theirs, active_cache[pos+2]->sha1);
|
||||
|
||||
status = ll_merge(&result_buf, path, &ancestor, NULL,
|
||||
status = ll_merge(&result_buf, path, &ancestor, "base",
|
||||
&ours, "ours", &theirs, "theirs", 0);
|
||||
free(ancestor.ptr);
|
||||
free(ours.ptr);
|
||||
|
@ -538,7 +538,7 @@ test_expect_success 'checkout with --merge, in diff3 -m style' '
|
||||
(
|
||||
echo "<<<<<<< ours"
|
||||
echo ourside
|
||||
echo "|||||||"
|
||||
echo "||||||| base"
|
||||
echo original
|
||||
echo "======="
|
||||
echo theirside
|
||||
@ -582,7 +582,7 @@ test_expect_success 'checkout --conflict=diff3' '
|
||||
(
|
||||
echo "<<<<<<< ours"
|
||||
echo ourside
|
||||
echo "|||||||"
|
||||
echo "||||||| base"
|
||||
echo original
|
||||
echo "======="
|
||||
echo theirside
|
||||
|
Loading…
Reference in New Issue
Block a user