summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 3ae854c)
raw | patch | inline | side by side (parent: 3ae854c)
author | Junio C Hamano <junkio@cox.net> | |
Fri, 16 Dec 2005 02:03:59 +0000 (18:03 -0800) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Sat, 17 Dec 2005 02:23:52 +0000 (18:23 -0800) |
by marking '?', '*', and '[' as bad_ref_char().
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-check-ref-format.txt | patch | blob | history | |
refs.c | patch | blob | history |
index 636e9516b09674d8d40516e1015931cacc54f210..f7f84c644ec6baddcdc5cc0b997c23409bb9a1d9 100644 (file)
. It cannot have ASCII control character (i.e. bytes whose
values are lower than \040, or \177 `DEL`), space, tilde `~`,
- caret `{caret}`, or colon `:` anywhere;
+ caret `{caret}`, colon `:`, question-mark `?`, asterisk `*`,
+ or open bracket `[` anywhere;
. It cannot end with a slash `/`.
These rules makes it easy for shell script based tools to parse
-refnames, and also avoids ambiguities in certain refname
-expressions (see gitlink:git-rev-parse[1]). Namely:
+refnames, pathname expansion by the shell when a refname is used
+unquoted (by mistake), and also avoids ambiguities in certain
+refname expressions (see gitlink:git-rev-parse[1]). Namely:
. double-dot `..` are often used as in `ref1..ref2`, and in some
context this notation means `{caret}ref1 ref2` (i.e. not in
index 69858e48cbb036d382408678434051628e290e5b..7a2c56e64b8cea71a83217ba39e718234b96b876 100644 (file)
--- a/refs.c
+++ b/refs.c
static inline int bad_ref_char(int ch)
{
return (((unsigned) ch) <= ' ' ||
- ch == '~' || ch == '^' || ch == ':');
+ ch == '~' || ch == '^' || ch == ':' ||
+ /* 2.13 Pattern Matching Notation */
+ ch == '?' || ch == '*' || ch == '[');
}
int check_ref_format(const char *ref)