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

Re: [PATCH] Cygwin has trustable filemode

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Jul 16, 2013, 21:20 UTC
Message-ID
<51E5B903.9050601@ramsay1.demon.co.uk>
In-Reply-To
<1373818390-14451-1-git-send-email-mlevedahl@gmail.com>
Mark Levedahl wrote:
Show 6 quoted lines
> The supported Cygwin distribution on supported Windows versions provides
> complete support for POSIX filemodes, so enable this by default. git as
> distributed by the Cygwin project is configured this way.
> 
> This fixes one testsuite failure:
> t3300 test 17 (diff-index -M -p with mode change quotes funny filename)

Huh? How is it running that test? Does cygwin 1.7 somehow allow tabs in filenames? For me, on cygwin 1.5, that test reports:

    $ ./t3300-funny-names.sh
    1..0 # SKIP Your filesystem does not allow tabs in filenames
    $
Show 10 quoted lines
> Historical notes: Earlier versions of Cygwin (version 1.5 and prior) had 
> various methods for supporting posix file modes on different file systems, 
> often using extended attributes, and this support was optional.  Such 
> versions of Cygwin are not available on any public mirror and are not 
> supported by the Cygwin project. The currently available Cygwin supports 
> POSIX file modes without exception - this is not an optional 
> configuration. The support does depend upon the underlying file system 
> (neither Linux nor Cygwin can set an execute bit on a FAT file system as 
> FAT has no such support), but as this is no different than Linux, the
> default should not treat Cygwin differently than Linux.  

The motivation for the original patch had more to do with "windows people" using win32 text editors which set the executable bit inappropriately. (see commit c869753e).

Since I use cygwin tools (vim), I don't have this problem. :-D
Show 21 quoted lines
> Users who desire the non-POSIX mode of operation must explicitly set 
> core.filemode=False, accepting non-interoperability with Linux.  
> 
> Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
> ---
>  config.mak.uname | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/config.mak.uname b/config.mak.uname
> index 7ac541e..779d06a 100644
> --- a/config.mak.uname
> +++ b/config.mak.uname
> @@ -163,7 +163,6 @@ ifeq ($(uname_O),Cygwin)
>  	NO_THREAD_SAFE_PREAD = YesPlease
>  	NEEDS_LIBICONV = YesPlease
>  	NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
> -	NO_TRUSTABLE_FILEMODE = UnfortunatelyYes
>  	NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
>  	# There are conflicting reports about this.
>  	# On some boxes NO_MMAP is needed, and not so elsewhere.
> 

Should you revert commit c869753e ("Force core.filemode to false on Cygwin.", 30-12-2006) instead?

ATB, Ramsay Jones

Previous: Mark LevedahlNext: Mark Levedahl
Message 2 of 19 in “Cygwin has trustable filemode”
  1. Cygwin has trustable filemodeMark Levedahl, Jul 14, 2013
  2. Ramsay JonesJul 16, 2013
  3. Mark LevedahlJul 16, 2013
  4. Cygwin has trustable filemodeMark Levedahl, Jul 19, 2013
  5. Junio C HamanoJul 19, 2013
  6. Mark LevedahlJul 19, 2013
  7. Junio C HamanoJul 19, 2013
  8. Mark LevedahlJul 19, 2013
  9. 1/4 Cygwin 1.7 has trustable filemodeMark Levedahl, Jul 19, 2013
  10. 2/4 Cygwin 1.7 needs compat/regexMark Levedahl, Jul 19, 2013
  11. 3/4 Cygwin 1.7 has thread-safe preadMark Levedahl, Jul 19, 2013
  12. 4/4 Cygwin 1.7 supports mmapMark Levedahl, Jul 19, 2013
  13. Jonathan NiederJul 19, 2013
  14. Ramsay JonesJul 20, 2013
  15. Ramsay JonesJul 20, 2013
  16. Junio C HamanoJul 21, 2013
  17. Mark LevedahlJul 22, 2013
  18. Junio C HamanoJul 22, 2013
  19. Mark LevedahlJul 22, 2013

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.