summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f01f109)
raw | patch | inline | side by side (parent: f01f109)
author | Robin Rosenberg <robin.rosenberg@dewire.com> | |
Fri, 8 May 2009 05:32:37 +0000 (07:32 +0200) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Sat, 9 May 2009 08:35:49 +0000 (01:35 -0700) |
This is asking for trouble since '\' is a directory separator in
Windows and thus may produce unpredictable results.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Windows and thus may produce unpredictable results.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-check-ref-format.txt | patch | blob | history | |
refs.c | patch | blob | history |
index c1ce26884e73f1599602472ba5032988486cc465..bf434544158fee814a9647a11102b7e1b1165720 100644 (file)
. 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
index e65a3b4c4ef57863a1055108d2598777cabc2c8d..fc33bc6ac4b4abcffd814afcd6ee76d4cc73c28c 100644 (file)
--- a/refs.c
+++ b/refs.c
* - 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 */