From: "Heba Waly via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Heba Waly <heba.waly@gmail.com>, Heba Waly <heba.waly@gmail.com>
Subject: [PATCH v3] add: use advice API to display hints
Date: Thu, 30 Jan 2020 01:11:41 +0000 [thread overview]
Message-ID: <pull.508.v3.git.1580346702203.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.508.v2.git.1578438752.gitgitgadget@gmail.com>
From: Heba Waly <heba.waly@gmail.com>
In the "add" command, use the advice API to display hints to users,
as it provides a neat and a standard format for hint messages, and
the message visibility will be configurable.
Signed-off-by: Heba Waly <heba.waly@gmail.com>
---
[Outreachy] add: use advise API to display hints
In the "add" command, use the advice API to display hints to users, as
it provides a neat and a standard format for hint messages, and the
message visibility will be configurable.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-508%2FHebaWaly%2Fformatting_hints-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-508/HebaWaly/formatting_hints-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/508
Range-diff vs v2:
1: 9f9febd3f4 ! 1: 410a66953d add: use advise function to display hints
@@ -1,16 +1,28 @@
Author: Heba Waly <heba.waly@gmail.com>
- add: use advise function to display hints
+ add: use advice API to display hints
- 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.
+ In the "add" command, use the advice API to display hints to users,
+ as it provides a neat and a standard format for hint messages, and
+ the message visibility will be configurable.
Signed-off-by: Heba Waly <heba.waly@gmail.com>
+ diff --git a/Documentation/config/advice.txt b/Documentation/config/advice.txt
+ --- a/Documentation/config/advice.txt
+ +++ b/Documentation/config/advice.txt
+@@
+ submoduleAlternateErrorStrategyDie:
+ Advice shown when a submodule.alternateErrorStrategy option
+ configured to "die" causes a fatal error.
++ addIgnoredFile::
++ Advice shown if a user attempts to add an ignored file to
++ the index.
++ addEmptyPathspec::
++ Advice shown if a user runs the add command without providing
++ the pathspec parameter.
+ --
+
diff --git a/advice.c b/advice.c
--- a/advice.c
+++ b/advice.c
@@ -18,7 +30,8 @@
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;
++int advice_add_ignored_file = 1;
++int advice_add_empty_pathspec = 1;
static int advice_use_color = -1;
static char advice_colors[][COLOR_MAXLEN] = {
@@ -26,7 +39,8 @@
{ "checkoutAmbiguousRemoteBranchName", &advice_checkout_ambiguous_remote_branch_name },
{ "nestedTag", &advice_nested_tag },
{ "submoduleAlternateErrorStrategyDie", &advice_submodule_alternate_error_strategy_die },
-+ { "addNothing", &advice_add_nothing },
++ { "addIgnoredFile", &advice_add_ignored_file },
++ { "addEmptyPathspec", &advice_add_empty_pathspec },
/* make this an alias for backward compatibility */
{ "pushNonFastForward", &advice_push_update_rejected }
@@ -38,7 +52,8 @@
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;
++extern int advice_add_ignored_file;
++extern int advice_add_empty_pathspec;
int git_default_advice_config(const char *var, const char *value);
__attribute__((format (printf, 1, 2)))
@@ -51,8 +66,10 @@
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"));
++ if (advice_add_ignored_file)
++ advise(_("Use -f if you really want to add them.\n"
++ "Turn this message off by running\n"
++ "\"git config advice.addIgnoredFile false\""));
exit_status = 1;
}
@@ -61,8 +78,10 @@
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"));
++ if (advice_add_empty_pathspec)
++ advise( _("Maybe you wanted to say 'git add .'?\n"
++ "Turn this message off by running\n"
++ "\"git config advice.addEmptyPathspec false\""));
return 0;
}
@@ -76,6 +95,8 @@
ignored-file
-Use -f if you really want to add them.
+hint: Use -f if you really want to add them.
++hint: Turn this message off by running
++hint: "git config advice.addIgnoredFile false"
EOF
cat >expect.out <<\EOF
add 'track-this'
Documentation/config/advice.txt | 6 ++++++
advice.c | 4 ++++
advice.h | 2 ++
builtin/add.c | 10 ++++++++--
t/t3700-add.sh | 4 +++-
5 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/Documentation/config/advice.txt b/Documentation/config/advice.txt
index d4e698cd3f..a72615c68d 100644
--- a/Documentation/config/advice.txt
+++ b/Documentation/config/advice.txt
@@ -110,4 +110,10 @@ advice.*::
submoduleAlternateErrorStrategyDie:
Advice shown when a submodule.alternateErrorStrategy option
configured to "die" causes a fatal error.
+ addIgnoredFile::
+ Advice shown if a user attempts to add an ignored file to
+ the index.
+ addEmptyPathspec::
+ Advice shown if a user runs the add command without providing
+ the pathspec parameter.
--
diff --git a/advice.c b/advice.c
index 249c60dcf3..97f3f981b4 100644
--- a/advice.c
+++ b/advice.c
@@ -31,6 +31,8 @@ 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_ignored_file = 1;
+int advice_add_empty_pathspec = 1;
static int advice_use_color = -1;
static char advice_colors[][COLOR_MAXLEN] = {
@@ -91,6 +93,8 @@ static struct {
{ "checkoutAmbiguousRemoteBranchName", &advice_checkout_ambiguous_remote_branch_name },
{ "nestedTag", &advice_nested_tag },
{ "submoduleAlternateErrorStrategyDie", &advice_submodule_alternate_error_strategy_die },
+ { "addIgnoredFile", &advice_add_ignored_file },
+ { "addEmptyPathspec", &advice_add_empty_pathspec },
/* make this an alias for backward compatibility */
{ "pushNonFastForward", &advice_push_update_rejected }
diff --git a/advice.h b/advice.h
index b706780614..0e6e58d9f8 100644
--- a/advice.h
+++ b/advice.h
@@ -31,6 +31,8 @@ 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_ignored_file;
+extern int advice_add_empty_pathspec;
int git_default_advice_config(const char *var, const char *value);
__attribute__((format (printf, 1, 2)))
diff --git a/builtin/add.c b/builtin/add.c
index 4c38aff419..37b6cbac53 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -390,7 +390,10 @@ 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_ignored_file)
+ advise(_("Use -f if you really want to add them.\n"
+ "Turn this message off by running\n"
+ "\"git config advice.addIgnoredFile false\""));
exit_status = 1;
}
@@ -480,7 +483,10 @@ 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_empty_pathspec)
+ advise( _("Maybe you wanted to say 'git add .'?\n"
+ "Turn this message off by running\n"
+ "\"git config advice.addEmptyPathspec false\""));
return 0;
}
diff --git a/t/t3700-add.sh b/t/t3700-add.sh
index c325167b90..88bc799807 100755
--- a/t/t3700-add.sh
+++ b/t/t3700-add.sh
@@ -326,7 +326,9 @@ 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.
+hint: Turn this message off by running
+hint: "git config advice.addIgnoredFile false"
EOF
cat >expect.out <<\EOF
add 'track-this'
base-commit: 0a76bd7381ec0dbb7c43776eb6d1ac906bca29e6
--
gitgitgadget
next prev parent reply other threads:[~2020-01-30 1:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-02 3:04 [PATCH 0/1] [Outreachy] [RFC] add: use advise function to display hints Heba Waly via GitGitGadget
2020-01-02 3:04 ` [PATCH 1/1] " Heba Waly via GitGitGadget
2020-01-02 19:54 ` Junio C Hamano
2020-01-02 22:47 ` Junio C Hamano
2020-01-07 10:54 ` Heba Waly
2020-01-07 16:35 ` Junio C Hamano
2020-01-07 23:32 ` Heba Waly
2020-01-06 23:13 ` Emily Shaffer
2020-01-06 23:18 ` Junio C Hamano
2020-01-07 4:19 ` Heba Waly
2020-01-06 23:07 ` Emily Shaffer
2020-01-06 23:13 ` Junio C Hamano
2020-01-07 23:12 ` [PATCH v2 0/1] [Outreachy] " Heba Waly via GitGitGadget
2020-01-07 23:12 ` [PATCH v2 1/1] " Heba Waly via GitGitGadget
2020-01-27 23:52 ` Emily Shaffer
2020-01-29 1:09 ` Heba Waly
2020-01-28 0:00 ` Jonathan Tan
2020-01-29 2:04 ` Heba Waly
2020-01-30 1:11 ` Heba Waly via GitGitGadget [this message]
2020-01-30 21:59 ` [PATCH v3] add: use advice API " Junio C Hamano
2020-01-31 11:16 ` Heba Waly
2020-02-05 21:18 ` Junio C Hamano
2020-02-05 22:05 ` Heba Waly
2020-02-05 22:18 ` Junio C Hamano
2020-02-05 23:05 ` Heba Waly
2020-02-05 23:18 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.508.v3.git.1580346702203.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=heba.waly@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.