git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Disallow '\' in ref names

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
May 8, 2009, 07:54 UTC
Message-ID
<4A03E551.8080904@drmicha.warpmail.net>
In-Reply-To
<1241760757-26068-1-git-send-email-robin.rosenberg@dewire.com>
Robin Rosenberg venit, vidit, dixit 08.05.2009 07:32:
Show 18 quoted lines
> 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>
> ---
>  Documentation/git-check-ref-format.txt |    2 ++
>  refs.c                                 |    3 ++-
>  2 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt
> index c1ce268..4884520 100644
> --- a/Documentation/git-check-ref-format.txt
> +++ b/Documentation/git-check-ref-format.txt
> @@ -38,6 +38,8 @@ imposes the following rules on how references are named:
>  
>  . They cannot contain a sequence `@{`.
>  
> +- They cannot contain a `\\`
Minor nit from the doc watch dog:
+. They cannot contain a `\\`.
Show 23 quoted lines
> +
>  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
> diff --git a/refs.c b/refs.c
> index e65a3b4..fc33bc6 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -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 */
Previous: Johannes Sixt
Message 6 of 6 in “Disallow '\' in ref names”
  1. Disallow '\' in ref namesRobin Rosenberg, May 8, 2009
  2. Andreas EricssonMay 8, 2009
  3. Johannes SixtMay 8, 2009
  4. Andreas EricssonMay 8, 2009
  5. Johannes SixtMay 8, 2009
  6. Michael J GruberMay 8, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.