summaryrefslogtreecommitdiff
path: root/advice.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2009-09-09 07:38:58 -0400
committerJunio C Hamano <gitster@pobox.com>2009-09-11 21:33:20 -0700
commit75194438f412714f4e82ca01e9038dc6714498c4 (patch)
treefdb94ce1638902652ab77a84d7ffa9271f2fe47a /advice.c
parent6ea71fe7d36cf5b81c2100d97a822ecf0bc04746 (diff)
downloadgit-75194438f412714f4e82ca01e9038dc6714498c4.tar.gz
push: make non-fast-forward help message configurable
This message is designed to help new users understand what has happened when refs fail to push. However, it does not help experienced users at all, and significantly clutters the output, frequently dwarfing the regular status table and making it harder to see. This patch introduces a general configuration mechanism for optional messages, with this push message as the first example. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'advice.c')
-rw-r--r--advice.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/advice.c b/advice.c
new file mode 100644
index 0000000000..b5216a2456
--- /dev/null
+++ b/advice.c
@@ -0,0 +1,25 @@
+#include "cache.h"
+
+int advice_push_nonfastforward = 1;
+
+static struct {
+ const char *name;
+ int *preference;
+} advice_config[] = {
+ { "pushnonfastforward", &advice_push_nonfastforward },
+};
+
+int git_default_advice_config(const char *var, const char *value)
+{
+ const char *k = skip_prefix(var, "advice.");
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(advice_config); i++) {
+ if (strcmp(k, advice_config[i].name))
+ continue;
+ *advice_config[i].preference = git_config_bool(var, value);
+ return 0;
+ }
+
+ return 0;
+}