All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael J Gruber <git@drmicha.warpmail.net>
To: Robin Rosenberg <robin.rosenberg@dewire.com>
Cc: gitster@pobox.com, git@vger.kernel.org, spearce@spearce.org
Subject: Re: [PATCH] Disallow '\' in ref names
Date: Fri, 08 May 2009 09:54:57 +0200	[thread overview]
Message-ID: <4A03E551.8080904@drmicha.warpmail.net> (raw)
In-Reply-To: <1241760757-26068-1-git-send-email-robin.rosenberg@dewire.com>

Robin Rosenberg venit, vidit, dixit 08.05.2009 07:32:
> 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 `\\`.

> +
>  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 */

      parent reply	other threads:[~2009-05-08  7:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-08  5:32 [PATCH] Disallow '\' in ref names Robin Rosenberg
2009-05-08  6:55 ` Andreas Ericsson
2009-05-08  7:17   ` Johannes Sixt
2009-05-08  7:46     ` Andreas Ericsson
2009-05-08  8:04       ` Johannes Sixt
2009-05-08  7:54 ` Michael J Gruber [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A03E551.8080904@drmicha.warpmail.net \
    --to=git@drmicha.warpmail.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=robin.rosenberg@dewire.com \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.