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

Re: [PATCH 04/15] Set _O_BINARY as default fmode for both MinGW and MSVC

From
Johannes Sixt <j.sixt@viscovery.net>
Date
Sep 17, 2009, 09:03 UTC
Message-ID
<4AB1FB79.5070903@viscovery.net>
In-Reply-To
<e2480c70909170139x9580bb4pcc1ad8e1b93aef17@mail.gmail.com>
Alexey Borzenkov schrieb:
Show 10 quoted lines
> On Thu, Sep 17, 2009 at 12:10 PM, Johannes Sixt <j.sixt@viscovery.net> wrote:
>> Marius Storm-Olsen schrieb:
>>> BTW, I ran all the tests (make /k test) before and after the
>>> whole series, with msysgit 'devel' branch + plain git.git 'next',
>>> and it turns out that 2 more tests pass after this series :)
>> Sorry to disappoint you: these 2 tests only passed by chance. For a
>> work-around see e95a73ef in mingw.git (it papers over an undetected
>> racily-clean index).
> 
> Maybe we should just implement nsec for mingw? The code is already almost there:

First thing to do is to understand what is going on: There are other architectures that do not have nsec and that do *not* have the problem; why do we have a problem on Windows? If you cannot answer this question, an nsec solution would still just be "it happens to work", and not "it works by design".

I think I had analyzed this particular case, and I understood it, but did not make notes why I found it satisfactory to just paper over the issue, and today I don't remember anymore. :-/

> Since we already reimplement stat/lstat/fstat it should be relatively
> simple and we don't care about usage of mingw's stat.
Don't forget utime().
> Do you want me to cook up a patch?
I consider an answer to the question "why do we need nsec?" more important.
BTW: t4130-apply-criss-cross-rename.sh fails quite often as well. This
time it is because we fill in st_ino = 0 instead of some useful value. The
test moves files around that happen to have identical sizes. After the
operation, the dirty working tree could be noticed because st_ino differs
from the index. But since we always set it to 0, it is not noticed.
(That's my theory.)
If you make a patch, can you think about this issue as well?
-- Hannes
Previous: Alexey BorzenkovNext: Marius Storm-Olsen
Message 40 of 50 in “Build Git with MSVC”
  1. 00/15 Build Git with MSVCMarius Storm-Olsen, Sep 16, 2009
  2. 01/15 Avoid declaration after statementMarius Storm-Olsen, Sep 16, 2009
  3. 02/15 Add define guards to compat/win32.hMarius Storm-Olsen, Sep 16, 2009
  4. 03/15 Change regerror() declaration from K&R style to ANSI C (C89)Marius Storm-Olsen, Sep 16, 2009
  5. 04/15 Set _O_BINARY as default fmode for both MinGW and MSVCMarius Storm-Olsen, Sep 16, 2009
  6. 05/15 Fix __stdcall placement and function prototypeMarius Storm-Olsen, Sep 16, 2009
  7. 06/15 Test for WIN32 instead of __MINGW32_Marius Storm-Olsen, Sep 16, 2009
  8. 07/15 Add empty header files for MSVC portMarius Storm-Olsen, Sep 16, 2009
  9. 08/15 Add MinGW header files to build git with MSVCMarius Storm-Olsen, Sep 16, 2009
  10. 09/15 Add platform files for MSVC portingMarius Storm-Olsen, Sep 16, 2009
  11. 10/15 Make usage of windows.h lean and meanMarius Storm-Olsen, Sep 16, 2009
  12. 11/15 Define strncasecmp and ftruncate for MSVCMarius Storm-Olsen, Sep 16, 2009
  13. 12/15 Add MSVC to MakefileMarius Storm-Olsen, Sep 16, 2009
  14. 13/15 Add README for MSVC buildMarius Storm-Olsen, Sep 16, 2009
  15. 14/15 Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)Marius Storm-Olsen, Sep 16, 2009
  16. 15/15 Tag GIT_VERSION when Git is built with MSVCMarius Storm-Olsen, Sep 16, 2009
  17. Johannes SixtSep 17, 2009
  18. Marius Storm-OlsenSep 18, 2009
  19. Johannes SixtSep 17, 2009
  20. Marius Storm-OlsenSep 18, 2009
  21. Johannes SixtSep 18, 2009
  22. Sebastian SchuberthSep 23, 2009
  23. Johannes SchindelinSep 23, 2009
  24. Marius Storm-OlsenSep 24, 2009
  25. Sebastian SchuberthSep 23, 2009
  26. Marius Storm-OlsenSep 23, 2009
  27. Frank LiSep 25, 2009
  28. Johannes SixtSep 16, 2009
  29. Alexey BorzenkovSep 16, 2009
  30. Johannes SixtSep 17, 2009
  31. Junio C HamanoSep 17, 2009
  32. Marius Storm-OlsenSep 17, 2009
  33. Johannes SixtSep 17, 2009
  34. Marius Storm-OlsenSep 17, 2009
  35. Johannes SixtSep 17, 2009
  36. Marius Storm-OlsenSep 17, 2009
  37. Alexey BorzenkovSep 17, 2009
  38. Marius Storm-OlsenSep 17, 2009
  39. Alexey BorzenkovSep 17, 2009
  40. Johannes SixtSep 17, 2009
  41. Marius Storm-OlsenSep 17, 2009
  42. Alexey BorzenkovSep 17, 2009
  43. Johannes SixtSep 17, 2009
  44. 04/15 Set _O_BINARY as default fmode for both MinGW and MSVCMarius Storm-Olsen, Sep 17, 2009
  45. Johannes SixtSep 17, 2009
  46. Erik Faye-LundSep 16, 2009
  47. Marius Storm-OlsenSep 16, 2009
  48. Sebastian SchuberthSep 23, 2009
  49. Erik Faye-LundSep 25, 2009
  50. 04/15 Set _O_BINARY as default fmode for both MinGW and MSVCMarius Storm-Olsen, Sep 17, 2009

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.