gc: refactor a "call me once" pattern
[gitweb.git] / builtin / rebase.c
index 96efd40901dba9424e61775e3033622ceaaba388..52114cbf0d9f98d52a5b48d8806019d14b1c7029 100644 (file)
@@ -1027,6 +1027,14 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
                ACTION_EDIT_TODO,
                ACTION_SHOW_CURRENT_PATCH,
        } action = NO_ACTION;
+       static const char *action_names[] = { N_("undefined"),
+                                             N_("continue"),
+                                             N_("skip"),
+                                             N_("abort"),
+                                             N_("quit"),
+                                             N_("edit_todo"),
+                                             N_("show_current_patch"),
+                                             NULL };
        const char *gpg_sign = NULL;
        struct string_list exec = STRING_LIST_INIT_NODUP;
        const char *rebase_merges = NULL;
@@ -1212,6 +1220,15 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
                die(_("The --edit-todo action can only be used during "
                      "interactive rebase."));
 
+       if (trace2_is_enabled()) {
+               if (is_interactive(&options))
+                       trace2_cmd_mode("interactive");
+               else if (exec.nr)
+                       trace2_cmd_mode("interactive-exec");
+               else
+                       trace2_cmd_mode(action_names[action]);
+       }
+
        switch (action) {
        case ACTION_CONTINUE: {
                struct object_id head;
@@ -1434,7 +1451,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
        }
 
        if (options.reschedule_failed_exec && !is_interactive(&options))
-               die(_("--reschedule-failed-exec requires an interactive rebase"));
+               die(_("%s requires an interactive rebase"), "--reschedule-failed-exec");
 
        if (options.git_am_opts.argc) {
                /* all am options except -q are compatible only with --am */