git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] config.mak.uname: Cygwin: Use renames for creation

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Aug 18, 2015, 15:44 UTC
Message-ID
<053a445c5b44e4c92dccba4dd5de26b9@www.dscho.org>
In-Reply-To
<55C7883C.7040504@dinwoodie.org>
Hi Adam,
On 2015-08-09 19:05, Adam Dinwoodie wrote:
Show 28 quoted lines
> On 09/08/2015 10:01, Johannes Schindelin wrote:
>> On 2015-08-09 04:01, Adam Dinwoodie wrote:
>>> 
>>>> We've gotten a lot of users on the list who ask why their Git
>>>> directories on shared drives aren't working (or are broken in some way).
>>>> Since I don't use Windows, let me ask: does the Cygwin DLL handle
>>>> link(2) properly on shared drives, and if not, would this patch help it
>>>> do so?  I can imagine that perhaps SMB doesn't support the necessary
>>>> operations to make a POSIX link(2) work properly.
>>>
>>> I'd need to go back to the Cygwin list to get a definite answer, but as
>>> I understand it, yes, this is is exactly the problem -- quoting Corinna,
>>> one of the Cygwin project leads, "The MS NFS is not very reliable in
>>> keeping up with changes to metadata."
>>>
>>> We have verified that setting `core.createobject rename` resolves the
>>> problem for people who are seeing it, which very strongly implies that
>>> this build option would solve the problem similarly, but would fix it
>>> for all users, not just those who spend enough time investigating the
>>> problem to find that setting.
>>
>>  From my experience, it appears that providing Corinna Vinschen (or better put: the Cygwin developers in general) with a sound patch gets things fixed pretty timely.
>>
>> And since `core.createObject = rename` seems to work around the problem, it should be possible to patch the Cygwin runtime accordingly. Sure, it will take a little investigation *what* code should be changed, and how, but the obvious benefit to *all* Cygwin applications should make that effort worth your while.
> 
> Hmm. I'm not sure what a Cygwin fix would look like here. As I
> understand it, using link(2) will fail if the target exists, while
> using rename(2) will just clobber a target file.
Thanks to you and Junio for explaining why my idea was bad. Sorry!

Ciao, Johannes

Previous: Adam Dinwoodie
Message 9 of 9 in “config.mak.uname: Cygwin: Use renames for creation”
  1. config.mak.uname: Cygwin: Use renames for creationAdam Dinwoodie, Aug 7, 2015
  2. Mark LevedahlAug 8, 2015
  3. brian m. carlsonAug 8, 2015
  4. Adam DinwoodieAug 9, 2015
  5. Johannes SchindelinAug 9, 2015
  6. Adam DinwoodieAug 9, 2015
  7. Junio C HamanoAug 10, 2015
  8. Adam DinwoodieAug 11, 2015
  9. Johannes SchindelinAug 18, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.