1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-13 05:16:09 +02:00

branch: make the advice to force-deleting a conditional one

The error message we show when the user tries to delete a not fully
merged branch describes the error and gives a hint to the user:

	error: the branch 'foo' is not fully merged.
	If you are sure you want to delete it, run 'git branch -D foo'.

Let's move the hint part so that it is displayed using the advice
machinery:

	error: the branch 'foo' is not fully merged
	hint: If you are sure you want to delete it, run 'git branch -D foo'
	hint: Disable this message with "git config advice.forceDeleteBranch false"

Signed-off-by: Rubén Justo <rjusto@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Rubén Justo 2024-01-11 13:40:34 +01:00 committed by Junio C Hamano
parent eddd134ce3
commit bec9bb4b39
4 changed files with 10 additions and 3 deletions

View File

@ -45,6 +45,9 @@ advice.*::
Advice shown when linkgit:git-fetch[1] takes a long time Advice shown when linkgit:git-fetch[1] takes a long time
to calculate forced updates after ref updates, or to warn to calculate forced updates after ref updates, or to warn
that the check is disabled. that the check is disabled.
forceDeleteBranch::
Advice shown when a user tries to delete a not fully merged
branch without the force option set.
ignoredHook:: ignoredHook::
Advice shown if a hook is ignored because the hook is not Advice shown if a hook is ignored because the hook is not
set as executable. set as executable.

View File

@ -47,6 +47,7 @@ static struct {
[ADVICE_DETACHED_HEAD] = { "detachedHead", 1 }, [ADVICE_DETACHED_HEAD] = { "detachedHead", 1 },
[ADVICE_DIVERGING] = { "diverging", 1 }, [ADVICE_DIVERGING] = { "diverging", 1 },
[ADVICE_FETCH_SHOW_FORCED_UPDATES] = { "fetchShowForcedUpdates", 1 }, [ADVICE_FETCH_SHOW_FORCED_UPDATES] = { "fetchShowForcedUpdates", 1 },
[ADVICE_FORCE_DELETE_BRANCH] = { "forceDeleteBranch", 1 },
[ADVICE_GRAFT_FILE_DEPRECATED] = { "graftFileDeprecated", 1 }, [ADVICE_GRAFT_FILE_DEPRECATED] = { "graftFileDeprecated", 1 },
[ADVICE_IGNORED_HOOK] = { "ignoredHook", 1 }, [ADVICE_IGNORED_HOOK] = { "ignoredHook", 1 },
[ADVICE_IMPLICIT_IDENTITY] = { "implicitIdentity", 1 }, [ADVICE_IMPLICIT_IDENTITY] = { "implicitIdentity", 1 },

View File

@ -21,6 +21,7 @@ enum advice_type {
ADVICE_DETACHED_HEAD, ADVICE_DETACHED_HEAD,
ADVICE_DIVERGING, ADVICE_DIVERGING,
ADVICE_FETCH_SHOW_FORCED_UPDATES, ADVICE_FETCH_SHOW_FORCED_UPDATES,
ADVICE_FORCE_DELETE_BRANCH,
ADVICE_GRAFT_FILE_DEPRECATED, ADVICE_GRAFT_FILE_DEPRECATED,
ADVICE_IGNORED_HOOK, ADVICE_IGNORED_HOOK,
ADVICE_IMPLICIT_IDENTITY, ADVICE_IMPLICIT_IDENTITY,

View File

@ -24,6 +24,7 @@
#include "ref-filter.h" #include "ref-filter.h"
#include "worktree.h" #include "worktree.h"
#include "help.h" #include "help.h"
#include "advice.h"
#include "commit-reach.h" #include "commit-reach.h"
static const char * const builtin_branch_usage[] = { static const char * const builtin_branch_usage[] = {
@ -190,9 +191,10 @@ static int check_branch_commit(const char *branchname, const char *refname,
return -1; return -1;
} }
if (!force && !branch_merged(kinds, branchname, rev, head_rev)) { if (!force && !branch_merged(kinds, branchname, rev, head_rev)) {
error(_("the branch '%s' is not fully merged.\n" error(_("the branch '%s' is not fully merged"), branchname);
"If you are sure you want to delete it, " advise_if_enabled(ADVICE_FORCE_DELETE_BRANCH,
"run 'git branch -D %s'"), branchname, branchname); _("If you are sure you want to delete it, "
"run 'git branch -D %s'"), branchname);
return -1; return -1;
} }
return 0; return 0;