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

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

From
Andreas Ericsson <ae@op5.se>
Date
May 8, 2009, 07:46 UTC
Message-ID
<4A03E343.4020000@op5.se>
In-Reply-To
<4A03DC9C.2050204@viscovery.net>
Johannes Sixt wrote:
Show 22 quoted lines
> 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.
> 

Ok. Isn't the slash -> backslash conversion thing supposed to be done by a macro? I seem to remember something about PATH_DELIM.

Show 5 quoted lines
> 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.
> 
But what about when locating directory cutoffs for mkdir() stuff?
-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Register now for Nordic Meet on Nagios, June 3-4 in Stockholm
 http://nordicmeetonnagios.op5.org/

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.
Previous: Johannes SixtNext: Johannes Sixt
Message 4 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.