git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* windows: error cannot lock ref ... unable to create lock
@ 2019-06-18 16:38 Anthony Sottile
  2019-06-18 16:41 ` Anthony Sottile
  2019-06-18 17:01 ` Eric Sunshine
  0 siblings, 2 replies; 6+ messages in thread
From: Anthony Sottile @ 2019-06-18 16:38 UTC (permalink / raw)
  To: Git Mailing List

I've set up a demo problematic repository on github:
https://github.com/asottile-archive/git-windows-branch-test

The minimal reproduction is:

rm -rf x
git init x
cd x
git remote add origin https://github.com/asottile-archive/git-windows-branch-te>
git fetch origin --tags

Here's the output:

+ git init x
Initialized empty Git repository in C:/Users/IEUser/x/x/.git/
+ cd x
+ git remote add origin
https://github.com/asottile-archive/git-windows-branch-test
+ git fetch origin --tags
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 10 (delta 0), reused 0 (delta 0), pack-reused 0
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)


real-world issue: https://github.com/pre-commit/pre-commit/issues/1058

Thanks

Anthony

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: windows: error cannot lock ref ... unable to create lock
  2019-06-18 16:38 windows: error cannot lock ref ... unable to create lock Anthony Sottile
@ 2019-06-18 16:41 ` Anthony Sottile
  2019-06-18 17:01 ` Eric Sunshine
  1 sibling, 0 replies; 6+ messages in thread
From: Anthony Sottile @ 2019-06-18 16:41 UTC (permalink / raw)
  To: Git Mailing List

hit send too quickly, here's my version information:

$ git --version
git version 2.22.0.windows.1

On Tue, Jun 18, 2019 at 9:38 AM Anthony Sottile <asottile@umich.edu> wrote:
>
> I've set up a demo problematic repository on github:
> https://github.com/asottile-archive/git-windows-branch-test
>
> The minimal reproduction is:
>
> rm -rf x
> git init x
> cd x
> git remote add origin https://github.com/asottile-archive/git-windows-branch-te>
> git fetch origin --tags
>
> Here's the output:
>
> + git init x
> Initialized empty Git repository in C:/Users/IEUser/x/x/.git/
> + cd x
> + git remote add origin
> https://github.com/asottile-archive/git-windows-branch-test
> + git fetch origin --tags
> remote: Enumerating objects: 10, done.
> remote: Counting objects: 100% (10/10), done.
> remote: Compressing objects: 100% (4/4), done.
> remote: Total 10 (delta 0), reused 0 (delta 0), pack-reused 0
> 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)
>
>
> real-world issue: https://github.com/pre-commit/pre-commit/issues/1058
>
> Thanks
>
> Anthony

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: windows: error cannot lock ref ... unable to create lock
  2019-06-18 16:38 windows: error cannot lock ref ... unable to create lock Anthony Sottile
  2019-06-18 16:41 ` Anthony Sottile
@ 2019-06-18 17:01 ` Eric Sunshine
  2019-06-18 17:19   ` Anthony Sottile
  2019-06-22 11:24   ` Philip Oakley
  1 sibling, 2 replies; 6+ messages in thread
From: Eric Sunshine @ 2019-06-18 17:01 UTC (permalink / raw)
  To: Anthony Sottile; +Cc: Git Mailing List

On Tue, Jun 18, 2019 at 12:39 PM Anthony Sottile <asottile@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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: windows: error cannot lock ref ... unable to create lock
  2019-06-18 17:01 ` Eric Sunshine
@ 2019-06-18 17:19   ` Anthony Sottile
  2019-06-22 11:24   ` Philip Oakley
  1 sibling, 0 replies; 6+ messages in thread
From: Anthony Sottile @ 2019-06-18 17:19 UTC (permalink / raw)
  To: Eric Sunshine; +Cc: Git Mailing List

On Tue, Jun 18, 2019 at 10:01 AM Eric Sunshine <sunshine@sunshineco.com> wrote:
>
> On Tue, Jun 18, 2019 at 12:39 PM Anthony Sottile <asottile@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

Oh of course, totally forgot about the special files on windows.

Thanks for the quick response and helpful link!

Anthony

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: windows: error cannot lock ref ... unable to create lock
  2019-06-18 17:01 ` Eric Sunshine
  2019-06-18 17:19   ` Anthony Sottile
@ 2019-06-22 11:24   ` Philip Oakley
  2019-06-24 10:40     ` Johannes Schindelin
  1 sibling, 1 reply; 6+ messages in thread
From: Philip Oakley @ 2019-06-22 11:24 UTC (permalink / raw)
  To: Eric Sunshine, Anthony Sottile; +Cc: Git Mailing List, Johannes Schindelin

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: windows: error cannot lock ref ... unable to create lock
  2019-06-22 11:24   ` Philip Oakley
@ 2019-06-24 10:40     ` Johannes Schindelin
  0 siblings, 0 replies; 6+ messages in thread
From: Johannes Schindelin @ 2019-06-24 10:40 UTC (permalink / raw)
  To: Philip Oakley; +Cc: Eric Sunshine, Anthony Sottile, Git Mailing List

Hi Philip,

On Sat, 22 Jun 2019, Philip Oakley wrote:

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

He doesn't ;-)

Ciao,
Dscho


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-06-24 10:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-18 16:38 windows: error cannot lock ref ... unable to create lock Anthony Sottile
2019-06-18 16:41 ` Anthony Sottile
2019-06-18 17:01 ` Eric Sunshine
2019-06-18 17:19   ` Anthony Sottile
2019-06-22 11:24   ` Philip Oakley
2019-06-24 10:40     ` Johannes Schindelin

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).