]> git.ipfire.org Git - thirdparty/git.git/commitdiff
built-in add -i: implement the `help` command
authorSlavica Đukić <slawica92@hotmail.com>
Fri, 15 Nov 2019 11:11:20 +0000 (11:11 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 18 Nov 2019 02:18:30 +0000 (11:18 +0900)
This imitates the code to show the help text from the Perl script
`git-add--interactive.perl` in the built-in version.

To make sure that it renders exactly like the Perl version of `git add
-i`, we also add a test case for that to `t3701-add-interactive.sh`.

Signed-off-by: Slavica Đukić <slawica92@hotmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
add-interactive.c
t/t3701-add-interactive.sh

index 170a5800e30d77e0eb60a7c789fe793643470deb..d6cb98cd405fc4e8ff4bf0fc5a158caa729c5058 100644 (file)
@@ -508,6 +508,26 @@ static int run_status(struct add_i_state *s, const struct pathspec *ps,
        return 0;
 }
 
+static int run_help(struct add_i_state *s, const struct pathspec *unused_ps,
+                   struct string_list *unused_files,
+                   struct list_options *unused_opts)
+{
+       color_fprintf_ln(stdout, s->help_color, "status        - %s",
+                        _("show paths with changes"));
+       color_fprintf_ln(stdout, s->help_color, "update        - %s",
+                        _("add working tree state to the staged set of changes"));
+       color_fprintf_ln(stdout, s->help_color, "revert        - %s",
+                        _("revert staged set of changes back to the HEAD version"));
+       color_fprintf_ln(stdout, s->help_color, "patch         - %s",
+                        _("pick hunks and update selectively"));
+       color_fprintf_ln(stdout, s->help_color, "diff          - %s",
+                        _("view diff between HEAD and index"));
+       color_fprintf_ln(stdout, s->help_color, "add untracked - %s",
+                        _("add contents of untracked files to the staged set of changes"));
+
+       return 0;
+}
+
 typedef int (*command_t)(struct add_i_state *s, const struct pathspec *ps,
                         struct string_list *files,
                         struct list_options *opts);
@@ -561,6 +581,7 @@ int run_add_i(struct repository *r, const struct pathspec *ps)
                command_t command;
        } command_list[] = {
                { "status", run_status },
+               { "help", run_help },
        };
        struct prefix_item_list commands = PREFIX_ITEM_LIST_INIT;
 
index d50e165ca82f99d7e7bcb5814b73e8cc8f160da9..d4f9386621b468ae805febf7382268ed8bf53d8d 100755 (executable)
@@ -647,4 +647,29 @@ test_expect_success 'checkout -p works with pathological context lines' '
        test_write_lines a b a b a a b a b a >expect &&
        test_cmp expect a
 '
+
+test_expect_success 'show help from add--helper' '
+       git reset --hard &&
+       cat >expect <<-EOF &&
+
+       <BOLD>*** Commands ***<RESET>
+         1: <BOLD;BLUE>s<RESET>tatus     2: <BOLD;BLUE>u<RESET>pdate     3: <BOLD;BLUE>r<RESET>evert     4: <BOLD;BLUE>a<RESET>dd untracked
+         5: <BOLD;BLUE>p<RESET>atch      6: <BOLD;BLUE>d<RESET>iff       7: <BOLD;BLUE>q<RESET>uit       8: <BOLD;BLUE>h<RESET>elp
+       <BOLD;BLUE>What now<RESET>> <BOLD;RED>status        - show paths with changes<RESET>
+       <BOLD;RED>update        - add working tree state to the staged set of changes<RESET>
+       <BOLD;RED>revert        - revert staged set of changes back to the HEAD version<RESET>
+       <BOLD;RED>patch         - pick hunks and update selectively<RESET>
+       <BOLD;RED>diff          - view diff between HEAD and index<RESET>
+       <BOLD;RED>add untracked - add contents of untracked files to the staged set of changes<RESET>
+       <BOLD>*** Commands ***<RESET>
+         1: <BOLD;BLUE>s<RESET>tatus     2: <BOLD;BLUE>u<RESET>pdate     3: <BOLD;BLUE>r<RESET>evert     4: <BOLD;BLUE>a<RESET>dd untracked
+         5: <BOLD;BLUE>p<RESET>atch      6: <BOLD;BLUE>d<RESET>iff       7: <BOLD;BLUE>q<RESET>uit       8: <BOLD;BLUE>h<RESET>elp
+       <BOLD;BLUE>What now<RESET>>$SP
+       Bye.
+       EOF
+       test_write_lines h | GIT_PAGER_IN_USE=true TERM=vt100 git add -i >actual.colored &&
+       test_decode_color <actual.colored >actual &&
+       test_i18ncmp expect actual
+'
+
 test_done