From b450568209c8ae270d26ee7fda2e4687ad8a5327 Mon Sep 17 00:00:00 2001 From: Chris Rorvick Date: Sun, 2 Dec 2012 21:27:51 -0600 Subject: [PATCH] push: allow already-exists advice to be disabled Add 'advice.pushAlreadyExists' option to disable the advice shown when an update is rejected for a reference that is not allowed to update at all (verses those that are allowed to fast-forward.) Signed-off-by: Chris Rorvick Signed-off-by: Junio C Hamano --- Documentation/config.txt | 8 ++++++-- advice.c | 2 ++ advice.h | 1 + builtin/push.c | 2 ++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 92903f22d9..90e7d10bad 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -142,8 +142,9 @@ advice.*:: -- pushUpdateRejected:: Set this variable to 'false' if you want to disable - 'pushNonFFCurrent', 'pushNonFFDefault', and - 'pushNonFFMatching' simultaneously. + 'pushNonFFCurrent', 'pushNonFFDefault', + 'pushNonFFMatching', and 'pushAlreadyExists' + simultaneously. pushNonFFCurrent:: Advice shown when linkgit:git-push[1] fails due to a non-fast-forward update to the current branch. @@ -158,6 +159,9 @@ advice.*:: 'matching refs' explicitly (i.e. you used ':', or specified a refspec that isn't your current branch) and it resulted in a non-fast-forward error. + pushAlreadyExists:: + Shown when linkgit:git-push[1] rejects an update that + does not qualify for fast-forwarding (e.g., a tag.) statusHints:: Show directions on how to proceed from the current state in the output of linkgit:git-status[1] and in diff --git a/advice.c b/advice.c index 329e0773db..d287927280 100644 --- a/advice.c +++ b/advice.c @@ -4,6 +4,7 @@ int advice_push_update_rejected = 1; int advice_push_non_ff_current = 1; int advice_push_non_ff_default = 1; int advice_push_non_ff_matching = 1; +int advice_push_already_exists = 1; int advice_status_hints = 1; int advice_commit_before_merge = 1; int advice_resolve_conflict = 1; @@ -18,6 +19,7 @@ static struct { { "pushnonffcurrent", &advice_push_non_ff_current }, { "pushnonffdefault", &advice_push_non_ff_default }, { "pushnonffmatching", &advice_push_non_ff_matching }, + { "pushalreadyexists", &advice_push_already_exists }, { "statushints", &advice_status_hints }, { "commitbeforemerge", &advice_commit_before_merge }, { "resolveconflict", &advice_resolve_conflict }, diff --git a/advice.h b/advice.h index c28ef8ac23..8bf63563a5 100644 --- a/advice.h +++ b/advice.h @@ -7,6 +7,7 @@ extern int advice_push_update_rejected; extern int advice_push_non_ff_current; extern int advice_push_non_ff_default; extern int advice_push_non_ff_matching; +extern int advice_push_already_exists; extern int advice_status_hints; extern int advice_commit_before_merge; extern int advice_resolve_conflict; diff --git a/builtin/push.c b/builtin/push.c index cf5ecfaf04..8491e431e4 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -247,6 +247,8 @@ static void advise_checkout_pull_push(void) static void advise_ref_already_exists(void) { + if (!advice_push_already_exists || !advice_push_update_rejected) + return; advise(_(message_advice_ref_already_exists)); } -- 2.11.4.GIT