On 18/06/2019 18:01, Eric Sunshine wrote:
On Tue, Jun 18, 2019 at 12:39 PM Anthony Sottile <asottile@xxxxxxxxx> 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