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

Re: [PATCH 2/2] config: use chmod() instead of fchmod()

From
Karsten Blees <karsten.blees@gmail.com>
Date
Jul 17, 2014, 08:57 UTC
Message-ID
<53C79016.2020303@gmail.com>
In-Reply-To
<xmqqlhrtq7a7.fsf@gitster.dls.corp.google.com>
Am 17.07.2014 00:16, schrieb Junio C Hamano:
Show 15 quoted lines
> Karsten Blees <karsten.blees@gmail.com> writes:
> 
>> There is no fchmod() on native Windows platforms (MinGW and MSVC), and the
>> equivalent Win32 API (SetFileInformationByHandle) requires Windows Vista.
>>
>> Use chmod() instead.
>>
>> Signed-off-by: Karsten Blees <blees@dcon.de>
>> ---
> 
> I am wondering if it is saner to just revert the fchmod() patch and
> replace it with something along the lines of
> 
> http://thread.gmane.org/gmane.comp.version-control.git/251682/focus=253219
> 
I also think it makes a lot of sense to handle permissions centrally.

However, with this patch, the permissions of the target file will additionally be limited by umask (by passing them to open()), and then overridden completely if core.sharedRepository is set.

Perhaps the lockfile API should respect the location of the lock files (i.e. use core.sharedRepository in .git, 0666 in the work-tree, and copy permissions anywhere else).

Another thing I find strange is that, by doing copy/replace, git silently overwrites readonly files. If we grab the permissions from the source file anyway, we should perhaps add 'if (!(perms & 0222)) error("file is readonly");', or even 'access(filename, W_OK)'?

> Having said that, these are the only two callers of fchmod()
> currently in our code base, so I'll queue this patch to allow us to
> kick the problem-can down the road ;-)
> 
Thanks.
Previous: Junio C HamanoNext: Stepan Kasal
Message 20 of 46 in “Topic sk/mingw-unicode-spawn-args breaks tests”
  1. Johannes SixtJul 10, 2014
  2. Karsten BleesJul 11, 2014
  3. Stepan KasalJul 12, 2014
  4. Johannes SchindelinJul 15, 2014
  5. 0/3 fix test suite with mingw-unicode patchesStepan Kasal, Jul 15, 2014
  6. 1/3 Win32: Unicode file name support (except dirent)Stepan Kasal, Jul 15, 2014
  7. 2/3 Win32: Unicode file name support (dirent)Stepan Kasal, Jul 15, 2014
  8. 3/3 tests: do not pass iso8859-1 encoded parameterStepan Kasal, Jul 15, 2014
  9. Stepan KasalJul 15, 2014
  10. Junio C HamanoJul 15, 2014
  11. Karsten BleesJul 15, 2014
  12. 1/2 MinGW: fix compile error due to missing ELOOPKarsten Blees, Jul 15, 2014
  13. Jonathan NiederJul 15, 2014
  14. Karsten BleesJul 15, 2014
  15. Junio C HamanoJul 16, 2014
  16. 2/2 config: use chmod() instead of fchmod()Karsten Blees, Jul 15, 2014
  17. Johannes SixtJul 16, 2014
  18. Karsten BleesJul 16, 2014
  19. Junio C HamanoJul 16, 2014
  20. Karsten BleesJul 17, 2014
  21. Stepan KasalJul 16, 2014
  22. Thomas BraunJul 16, 2014
  23. 0/6 mingw test fixesStepan Kasal, Jul 17, 2014
  24. 1/6 MinGW: Skip test redirecting to fd 4Stepan Kasal, Jul 17, 2014
  25. Junio C HamanoJul 17, 2014
  26. Johannes SchindelinJul 17, 2014
  27. Karsten BleesJul 17, 2014
  28. Junio C HamanoJul 17, 2014
  29. 2/6 Disable t0110's high-bit test on WindowsStepan Kasal, Jul 17, 2014
  30. Karsten BleesJul 17, 2014
  31. Junio C HamanoJul 18, 2014
  32. t0110/MinGW: skip tests that pass arbitrary bytes on the command lineKarsten Blees, Jul 19, 2014
  33. Junio C HamanoJul 21, 2014
  34. 3/6 MinGW: disable legacy encoding testsStepan Kasal, Jul 17, 2014
  35. 4/6 t4210: skip command-line encoding tests on mingwStepan Kasal, Jul 17, 2014
  36. Erik Faye-LundJul 18, 2014
  37. Junio C HamanoJul 21, 2014
  38. Johannes SchindelinJul 21, 2014
  39. Johannes SixtJul 21, 2014
  40. Junio C HamanoJul 21, 2014
  41. Junio C HamanoJul 21, 2014
  42. Junio C HamanoJul 21, 2014
  43. 2/2 test prerequisites: enumerate with commasJunio C Hamano, Jul 21, 2014
  44. 5/6 t9902: mingw-specific fix for gitfile link filesStepan Kasal, Jul 17, 2014
  45. Junio C HamanoJul 17, 2014
  46. 6/6 t800[12]: work around MSys limitationStepan Kasal, Jul 17, 2014

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.