summaryrefslogtreecommitdiffstats
path: root/branch.c
diff options
context:
space:
mode:
authorKristoffer Haugsbakk <code@khaugsbakk.name>2024-03-05 21:29:43 +0100
committerJunio C Hamano <gitster@pobox.com>2024-03-05 22:04:26 +0100
commit8fbd903e58503cbdd1f1c816dd0c6c3c4d591b13 (patch)
treebdcac7428df8f52598ee55307389ff0cc6dfcee8 /branch.c
parentadvice: use double quotes for regular quoting (diff)
downloadgit-8fbd903e58503cbdd1f1c816dd0c6c3c4d591b13.tar.xz
git-8fbd903e58503cbdd1f1c816dd0c6c3c4d591b13.zip
branch: advise about ref syntax rules
git-branch(1) will error out if you give it a bad ref name. But the user might not understand why or what part of the name is illegal. The user might know that there are some limitations based on the *loose ref* format (filenames), but there are also further rules for easier integration with shell-based tools, pathname expansion, and playing well with reference name expressions. The man page for git-check-ref-format(1) contains these rules. Let’s advise about it since that is not a command that you just happen upon. Also make this advise configurable since you might not want to be reminded every time you make a little typo. Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'branch.c')
-rw-r--r--branch.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/branch.c b/branch.c
index 6719a181bd..621019fcf4 100644
--- a/branch.c
+++ b/branch.c
@@ -370,8 +370,12 @@ int read_branch_desc(struct strbuf *buf, const char *branch_name)
*/
int validate_branchname(const char *name, struct strbuf *ref)
{
- if (strbuf_check_branch_ref(ref, name))
- die(_("'%s' is not a valid branch name"), name);
+ if (strbuf_check_branch_ref(ref, name)) {
+ int code = die_message(_("'%s' is not a valid branch name"), name);
+ advise_if_enabled(ADVICE_REF_SYNTAX,
+ _("See `man git check-ref-format`"));
+ exit(code);
+ }
return ref_exists(ref->buf);
}