Re: [PATCH] Disallow '\' in ref names
From: Andreas Ericsson <hidden>
Date: 2016-06-15 22:46:43
Johannes Sixt wrote:
Andreas Ericsson schrieb:quoted
Robin Rosenberg wrote:quoted
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.
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.