Merge branch 'rr/forbid-bs-in-ref'

* rr/forbid-bs-in-ref:
  Disallow '\' in ref names
This commit is contained in:
Junio C Hamano 2009-05-23 01:39:45 -07:00
commit e05aae684d
2 changed files with 4 additions and 1 deletions

View File

@ -42,6 +42,8 @@ imposes the following rules on how references are named:
. They cannot contain a sequence `@{`.
- They cannot contain a `\\`.
These rules make it easy for shell script based tools to parse
reference names, pathname expansion by the shell when a reference name is used
unquoted (by mistake), and also avoids ambiguities in certain

3
refs.c
View File

@ -682,12 +682,13 @@ int for_each_rawref(each_ref_fn fn, void *cb_data)
* - it has ASCII control character, "~", "^", ":" or SP, anywhere, or
* - it ends with a "/".
* - it ends with ".lock"
* - it contains a "\" (backslash)
*/
static inline int bad_ref_char(int ch)
{
if (((unsigned) ch) <= ' ' ||
ch == '~' || ch == '^' || ch == ':')
ch == '~' || ch == '^' || ch == ':' || ch == '\\')
return 1;
/* 2.13 Pattern Matching Notation */
if (ch == '?' || ch == '[') /* Unsupported */