From: Johannes Sixt <j.sixt@viscovery.net>
To: Andreas Ericsson <ae@op5.se>
Cc: Robin Rosenberg <robin.rosenberg@dewire.com>,
gitster@pobox.com, git@vger.kernel.org, spearce@spearce.org
Subject: Re: [PATCH] Disallow '\' in ref names
Date: Fri, 08 May 2009 09:17:48 +0200 [thread overview]
Message-ID: <4A03DC9C.2050204@viscovery.net> (raw)
In-Reply-To: <4A03D776.6070309@op5.se>
Andreas Ericsson schrieb:
> Robin Rosenberg wrote:
>> This is asking for trouble since '\' is a directory separator in
>> Windows and thus may produce unpredictable results.
>>
>
> NAK. We allow / on unixy systems, and that's the path separator there.
> Junio even makes extensive use of it to create per-contributor
> namespaces for topic-branches.
>
> Are you guessing this might be a problem in the future, or have you
> actually run into it?
This is not possible on Windows:
$ git update-ref refs/heads/foo\bar HEAD
fatal: Unable to create '.git/refs/heads/foo\bar.lock': No such file or
directory
The problem is that git doesn't create the directory .git/refs/heads/foo
because the ref handling only mkdir()s directories that were split off
from the ref at forward-slashes.
The decision not to mangle command line arguments that are refs (on
Windows) was intentional. (We do mangle pathspec, i.e. we convert '\' to
'/'.) But back then I did not think about what should happen if a ref
contains a backslash.
BTW, it's the same problem with backslash in path components: Just don't
do that if you want to be cross-platfrom.
-- Hannes
next prev parent reply other threads:[~2009-05-08 7:18 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 [this message]
2009-05-08 7:46 ` Andreas Ericsson
2009-05-08 8:04 ` Johannes Sixt
2009-05-08 7:54 ` Michael J Gruber
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=4A03DC9C.2050204@viscovery.net \
--to=j.sixt@viscovery.net \
--cc=ae@op5.se \
--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.