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