summaryrefslogtreecommitdiff
path: root/notes-utils.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-08-31 15:39:05 -0700
committerJunio C Hamano <gitster@pobox.com>2015-08-31 15:39:05 -0700
commit5b6211aee1f042a6961ef8a6bd8286db51bfc513 (patch)
tree45e6790acc7705d569c35418bef0ade2c2436c22 /notes-utils.c
parentd75bb73bcf2ecce38c147980aac0cbc27a6b838a (diff)
parent4f655e22b76fed49b0c32bcdcd899934215b9a6d (diff)
downloadgit-5b6211aee1f042a6961ef8a6bd8286db51bfc513.tar.gz
Merge branch 'jk/notes-merge-config'
"git notes merge" can be told with "--strategy=<how>" option how to automatically handle conflicts; this can now be configured by setting notes.mergeStrategy configuration variable. * jk/notes-merge-config: notes: teach git-notes about notes.<name>.mergeStrategy option notes: add notes.mergeStrategy option to select default strategy notes: add tests for --commit/--abort/--strategy exclusivity notes: extract parse_notes_merge_strategy to notes-utils notes: extract enum notes_merge_strategy to notes-utils.h notes: document cat_sort_uniq rewriteMode
Diffstat (limited to 'notes-utils.c')
-rw-r--r--notes-utils.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/notes-utils.c b/notes-utils.c
index ccbf0737a3..299e34bccc 100644
--- a/notes-utils.c
+++ b/notes-utils.c
@@ -54,6 +54,24 @@ void commit_notes(struct notes_tree *t, const char *msg)
strbuf_release(&buf);
}
+int parse_notes_merge_strategy(const char *v, enum notes_merge_strategy *s)
+{
+ if (!strcmp(v, "manual"))
+ *s = NOTES_MERGE_RESOLVE_MANUAL;
+ else if (!strcmp(v, "ours"))
+ *s = NOTES_MERGE_RESOLVE_OURS;
+ else if (!strcmp(v, "theirs"))
+ *s = NOTES_MERGE_RESOLVE_THEIRS;
+ else if (!strcmp(v, "union"))
+ *s = NOTES_MERGE_RESOLVE_UNION;
+ else if (!strcmp(v, "cat_sort_uniq"))
+ *s = NOTES_MERGE_RESOLVE_CAT_SORT_UNIQ;
+ else
+ return -1;
+
+ return 0;
+}
+
static combine_notes_fn parse_combine_notes_fn(const char *v)
{
if (!strcasecmp(v, "overwrite"))