Skip to content

Commit

Permalink
add: use advise function to display hints
Browse files Browse the repository at this point in the history
Use the advise function in advice.c to display hints to the users, as
it provides a neat and a standard format for hint messages, i.e: the
text is colored in yellow and the line starts by the word "hint:".

Also this will enable us to control the messages using advice.*
configuration variables.

Signed-off-by: Heba Waly <heba.waly@gmail.com>
  • Loading branch information
HebaWaly committed Jan 7, 2020
1 parent 0a76bd7 commit 9f9febd
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 3 deletions.
2 changes: 2 additions & 0 deletions advice.c
Expand Up @@ -31,6 +31,7 @@ int advice_graft_file_deprecated = 1;
int advice_checkout_ambiguous_remote_branch_name = 1;
int advice_nested_tag = 1;
int advice_submodule_alternate_error_strategy_die = 1;
int advice_add_nothing = 1;

static int advice_use_color = -1;
static char advice_colors[][COLOR_MAXLEN] = {
Expand Down Expand Up @@ -91,6 +92,7 @@ static struct {
{ "checkoutAmbiguousRemoteBranchName", &advice_checkout_ambiguous_remote_branch_name },
{ "nestedTag", &advice_nested_tag },
{ "submoduleAlternateErrorStrategyDie", &advice_submodule_alternate_error_strategy_die },
{ "addNothing", &advice_add_nothing },

/* make this an alias for backward compatibility */
{ "pushNonFastForward", &advice_push_update_rejected }
Expand Down
1 change: 1 addition & 0 deletions advice.h
Expand Up @@ -31,6 +31,7 @@ extern int advice_graft_file_deprecated;
extern int advice_checkout_ambiguous_remote_branch_name;
extern int advice_nested_tag;
extern int advice_submodule_alternate_error_strategy_die;
extern int advice_add_nothing;

int git_default_advice_config(const char *var, const char *value);
__attribute__((format (printf, 1, 2)))
Expand Down
6 changes: 4 additions & 2 deletions builtin/add.c
Expand Up @@ -390,7 +390,8 @@ static int add_files(struct dir_struct *dir, int flags)
fprintf(stderr, _(ignore_error));
for (i = 0; i < dir->ignored_nr; i++)
fprintf(stderr, "%s\n", dir->ignored[i]->name);
fprintf(stderr, _("Use -f if you really want to add them.\n"));
if (advice_add_nothing)
advise(_("Use -f if you really want to add them.\n"));
exit_status = 1;
}

Expand Down Expand Up @@ -480,7 +481,8 @@ int cmd_add(int argc, const char **argv, const char *prefix)

if (require_pathspec && pathspec.nr == 0) {
fprintf(stderr, _("Nothing specified, nothing added.\n"));
fprintf(stderr, _("Maybe you wanted to say 'git add .'?\n"));
if (advice_add_nothing)
advise( _("Maybe you wanted to say 'git add .'?\n"));
return 0;
}

Expand Down
2 changes: 1 addition & 1 deletion t/t3700-add.sh
Expand Up @@ -326,7 +326,7 @@ test_expect_success 'git add --dry-run of an existing file output' "
cat >expect.err <<\EOF
The following paths are ignored by one of your .gitignore files:
ignored-file
Use -f if you really want to add them.
hint: Use -f if you really want to add them.
EOF
cat >expect.out <<\EOF
add 'track-this'
Expand Down

0 comments on commit 9f9febd

Please sign in to comment.