On 18/06/2019 18:01, Eric Sunshine wrote:
On Tue, Jun 18, 2019 at 12:39 PM Anthony Sottile <asott...@umich.edu> wrote:
+ git fetch origin --tags
Unpacking objects: 100% (10/10), done.
 From https://github.com/asottile-archive/git-windows-branch-test
  * [new branch]      master     -> origin/master
error: cannot lock ref 'refs/remotes/origin/pr/aux': Unable to create
'C:/Users/IEUser/x/x/.git/refs/remotes/origin/pr/aux.lock': No such
file or directory
  ! [new branch]      pr/aux     -> origin/pr/aux  (unable to update local ref)
AUX is a reserved[1] filename on Windows. Quoting from that source:

     Do not use the following reserved names for the name of a file:
     CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7,
     COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and
     LPT9. Also avoid these names followed immediately by an
     extension...

The default Git "ref store" is filesystem-based, so a branch named
"aux" is problematic. Other ref store implementations would not be
subject to this limitation (though I'm not sure what the state of the
others is -- someone with more knowledge can probably answer that).

[1]: 
https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#naming-conventions
This sounds interesting. I thought (but I'm not certain) that Git for Windows avoided creating files in the working tree with such problematic names, so that a clone of a repo that contained a file "AUX" (any case, any extension IIRC), would be bypassed with possibly a warning message.

However this looks to be a slightly different case where a _branch_ called "AUX" (lower cased) has been created within the clone, and it's a problem not trapped. Maybe worth creating a proper issue on the Git-for-Windows repo. Also cc'ing Dscho who may remember better than I.
--
Philip

Reply via email to