Provide 'git merge --abort' as a synonym to 'git reset --merge'
[gitweb.git] / builtin / notes.c
index 710a89da28bf50c0002f3658f90f674db2e42818..f5abf7aa6e70d42b8f1e8ca498e5ea084f1c73ba 100644 (file)
@@ -31,6 +31,7 @@ static const char * const git_notes_usage[] = {
        "git notes merge --abort [-v | -q]",
        "git notes [--ref <notes_ref>] remove [<object>]",
        "git notes [--ref <notes_ref>] prune [-n | -v]",
+       "git notes [--ref <notes_ref>] get-ref",
        NULL
 };
 
@@ -82,6 +83,11 @@ static const char * const git_notes_prune_usage[] = {
        NULL
 };
 
+static const char * const git_notes_get_ref_usage[] = {
+       "git notes get-ref",
+       NULL
+};
+
 static const char note_template[] =
        "\n"
        "#\n"
@@ -324,6 +330,8 @@ combine_notes_fn parse_combine_notes_fn(const char *v)
                return combine_notes_ignore;
        else if (!strcasecmp(v, "concatenate"))
                return combine_notes_concatenate;
+       else if (!strcasecmp(v, "cat_sort_uniq"))
+               return combine_notes_cat_sort_uniq;
        else
                return NULL;
 }
@@ -846,8 +854,8 @@ static int merge(int argc, const char **argv, const char *prefix)
                OPT__VERBOSITY(&verbosity),
                OPT_GROUP("Merge options"),
                OPT_STRING('s', "strategy", &strategy, "strategy",
-                          "resolve notes conflicts using the given "
-                          "strategy (manual/ours/theirs/union)"),
+                          "resolve notes conflicts using the given strategy "
+                          "(manual/ours/theirs/union/cat_sort_uniq)"),
                OPT_GROUP("Committing unmerged notes"),
                { OPTION_BOOLEAN, 0, "commit", &do_commit, NULL,
                        "finalize notes merge by committing unmerged notes",
@@ -899,6 +907,8 @@ static int merge(int argc, const char **argv, const char *prefix)
                        o.strategy = NOTES_MERGE_RESOLVE_THEIRS;
                else if (!strcmp(strategy, "union"))
                        o.strategy = NOTES_MERGE_RESOLVE_UNION;
+               else if (!strcmp(strategy, "cat_sort_uniq"))
+                       o.strategy = NOTES_MERGE_RESOLVE_CAT_SORT_UNIQ;
                else {
                        error("Unknown -s/--strategy: %s", strategy);
                        usage_with_options(git_notes_merge_usage, options);
@@ -998,6 +1008,21 @@ static int prune(int argc, const char **argv, const char *prefix)
        return 0;
 }
 
+static int get_ref(int argc, const char **argv, const char *prefix)
+{
+       struct option options[] = { OPT_END() };
+       argc = parse_options(argc, argv, prefix, options,
+                            git_notes_get_ref_usage, 0);
+
+       if (argc) {
+               error("too many parameters");
+               usage_with_options(git_notes_get_ref_usage, options);
+       }
+
+       puts(default_notes_ref());
+       return 0;
+}
+
 int cmd_notes(int argc, const char **argv, const char *prefix)
 {
        int result;
@@ -1036,6 +1061,8 @@ int cmd_notes(int argc, const char **argv, const char *prefix)
                result = remove_cmd(argc, argv, prefix);
        else if (!strcmp(argv[0], "prune"))
                result = prune(argc, argv, prefix);
+       else if (!strcmp(argv[0], "get-ref"))
+               result = get_ref(argc, argv, prefix);
        else {
                result = error("Unknown subcommand: %s", argv[0]);
                usage_with_options(git_notes_usage, options);