[PATCH v2 3/4] notes: fix merge.conflictstyle handling
Currently it's completely ignored.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
builtin/notes.c | 3 ++-
t/t6440-config-conflict-markers.sh | 27 +++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/builtin/notes.c b/builtin/notes.c
index 74bba39ca8..a333cc68ec 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -23,6 +23,7 @@
#include "notes-merge.h"
#include "notes-utils.h"
#include "worktree.h"
+#include "xdiff-interface.h"
static const char * const git_notes_usage[] = {
N_("git notes [--ref <notes-ref>] [list [<object>]]"),
@@ -1000,7 +1001,7 @@ int cmd_notes(int argc, const char **argv, const char *prefix)
OPT_END()
};
- git_config(git_default_config, NULL);
+ git_config(git_xmerge_config, NULL);
argc = parse_options(argc, argv, prefix, options, git_notes_usage,
PARSE_OPT_STOP_AT_NON_OPTION);
diff --git a/t/t6440-config-conflict-markers.sh b/t/t6440-config-conflict-markers.sh
index cb2ee3ad0a..c51512ced6 100755
--- a/t/t6440-config-conflict-markers.sh
+++ b/t/t6440-config-conflict-markers.sh
@@ -55,4 +55,31 @@ test_expect_success 'merge-tree' '
)
'
+test_expect_success 'notes' '
+ test_create_repo notes &&
+ (
+ test_commit initial &&
+
+ git -c core.notesRef=refs/notes/b notes add -m b initial &&
+
+ git update-ref refs/notes/r refs/notes/b &&
+ git -c core.notesRef=refs/notes/r notes add -f -m r initial &&
+
+ git update-ref refs/notes/l refs/notes/b &&
+ git config core.notesRef refs/notes/l &&
+ git notes add -f -m l initial &&
+
+ test_must_fail git notes merge r &&
+ ! grep "^|||||||" .git/NOTES_MERGE_WORKTREE/* &&
+
+ git notes merge --abort &&
+ test_must_fail git -c merge.conflictstyle=diff3 notes merge r &&
+ grep "^|||||||" .git/NOTES_MERGE_WORKTREE/* &&
+
+ git notes merge --abort &&
+ test_must_fail git -c merge.conflictstyle=merge notes merge r &&
+ ! grep "^|||||||" .git/NOTES_MERGE_WORKTREE/*
+ )
+'
+
test_done
--
2.32.0