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 <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Chris Rorvick
2012-12-02 21:27:51 -06:00
committed by Junio C Hamano
parent 1184564eac
commit b450568209
4 changed files with 11 additions and 2 deletions

View File

@ -142,8 +142,9 @@ advice.*::
-- --
pushUpdateRejected:: pushUpdateRejected::
Set this variable to 'false' if you want to disable Set this variable to 'false' if you want to disable
'pushNonFFCurrent', 'pushNonFFDefault', and 'pushNonFFCurrent', 'pushNonFFDefault',
'pushNonFFMatching' simultaneously. 'pushNonFFMatching', and 'pushAlreadyExists'
simultaneously.
pushNonFFCurrent:: pushNonFFCurrent::
Advice shown when linkgit:git-push[1] fails due to a Advice shown when linkgit:git-push[1] fails due to a
non-fast-forward update to the current branch. non-fast-forward update to the current branch.
@ -158,6 +159,9 @@ advice.*::
'matching refs' explicitly (i.e. you used ':', or 'matching refs' explicitly (i.e. you used ':', or
specified a refspec that isn't your current branch) and specified a refspec that isn't your current branch) and
it resulted in a non-fast-forward error. 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:: statusHints::
Show directions on how to proceed from the current Show directions on how to proceed from the current
state in the output of linkgit:git-status[1] and in state in the output of linkgit:git-status[1] and in

View File

@ -4,6 +4,7 @@ int advice_push_update_rejected = 1;
int advice_push_non_ff_current = 1; int advice_push_non_ff_current = 1;
int advice_push_non_ff_default = 1; int advice_push_non_ff_default = 1;
int advice_push_non_ff_matching = 1; int advice_push_non_ff_matching = 1;
int advice_push_already_exists = 1;
int advice_status_hints = 1; int advice_status_hints = 1;
int advice_commit_before_merge = 1; int advice_commit_before_merge = 1;
int advice_resolve_conflict = 1; int advice_resolve_conflict = 1;
@ -18,6 +19,7 @@ static struct {
{ "pushnonffcurrent", &advice_push_non_ff_current }, { "pushnonffcurrent", &advice_push_non_ff_current },
{ "pushnonffdefault", &advice_push_non_ff_default }, { "pushnonffdefault", &advice_push_non_ff_default },
{ "pushnonffmatching", &advice_push_non_ff_matching }, { "pushnonffmatching", &advice_push_non_ff_matching },
{ "pushalreadyexists", &advice_push_already_exists },
{ "statushints", &advice_status_hints }, { "statushints", &advice_status_hints },
{ "commitbeforemerge", &advice_commit_before_merge }, { "commitbeforemerge", &advice_commit_before_merge },
{ "resolveconflict", &advice_resolve_conflict }, { "resolveconflict", &advice_resolve_conflict },

View File

@ -7,6 +7,7 @@ extern int advice_push_update_rejected;
extern int advice_push_non_ff_current; extern int advice_push_non_ff_current;
extern int advice_push_non_ff_default; extern int advice_push_non_ff_default;
extern int advice_push_non_ff_matching; extern int advice_push_non_ff_matching;
extern int advice_push_already_exists;
extern int advice_status_hints; extern int advice_status_hints;
extern int advice_commit_before_merge; extern int advice_commit_before_merge;
extern int advice_resolve_conflict; extern int advice_resolve_conflict;

View File

@ -247,6 +247,8 @@ static void advise_checkout_pull_push(void)
static void advise_ref_already_exists(void) static void advise_ref_already_exists(void)
{ {
if (!advice_push_already_exists || !advice_push_update_rejected)
return;
advise(_(message_advice_ref_already_exists)); advise(_(message_advice_ref_already_exists));
} }