From: Philip Oakley Date: Sat, 22 Jun 2019 11:24:04 GMT Subject: Re: windows: error cannot lock ref ... unable to create lock Message-ID: <98e1e1e5-c410-caf1-0e2f-9cb0cc6d7e94@iee.org> In-Reply-To: On 18/06/2019 18:01, Eric Sunshine wrote: > On Tue, Jun 18, 2019 at 12:39 PM Anthony Sottile 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