Re: [PATCH] init - Honour the global core.filemode setting
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Oct 3, 2014, 16:54 UTC
- Message-ID
- <542ED4B8.40603@web.de>
- In-Reply-To
- <xmqqzjdeo16d.fsf@gitster.dls.corp.google.com>
On 2014-10-02 19.02, Junio C Hamano wrote:
Show 38 quoted lines
> Torsten Bögershausen <tboegi@web.de> writes: > >> On 2014-10-01 19.10, Junio C Hamano wrote: >>> Hilco Wijbenga <hilco.wijbenga@gmail.com> writes: >>> >>>> Perhaps I completely misunderstand the meaning of core.filemode but I >>>> thought it determined whether Git cared about changes in file >>>> properties? >>> >>> By setting it to "false", you tell Git that the filesystem you >>> placed the repository does not correctly represent the filemode >>> (especially the executable bit). >>> >>> "core.fileMode" in "git config --help" reads: >>> >>> core.fileMode >>> If false, the executable bit differences between the >>> index and the working tree are ignored; useful on broken >>> filesystems like FAT. See git-update- index(1). >> >> Out of my head: Could the following be a starting point: >> >> core.fileMode >> If false, the executable bit differences between the >> index and the working tree are ignored. >> This may be usefull when visiting a cygwin repo with a non-cygwin >> Git client. (should we mention msysgit ? should we mention JGit/EGit ?) > > Between these two sentences, there may still be the same cognitive > gap that may have lead to the original confusion. > > The first sentence says what happens, as it should. > > But it is not directly clear what makes the executable bit differ > and when it is a useful thing to ignore the differences, so the > second sentence that says "This may be useful" does not give the > reader very much. >
Clearly a major improvement.
Does this (still) include the original line "See linkgit:git-update-index[1]"
which helps the user to add *.sh files "executable" to the index, even if core.filemode is false ? One minor improvement below.
Show 19 quoted lines
> Here is my attempt. > > Tells Git if the executable bit of files in the working tree > is to be honored. > > Some filesystems lose the executable bit when a file that is > marked as executable is checked out, or checks out an > non-executable file with executable bit on. "git init" and > "git clone" probe the filesystem to see if it records > executable bit correctly when they create a new repository > and this variable is automatically set as necessary. > > A repository, however, may be on a filesystem that records > the filemode correctly, and this variable is set to 'true' > when created, but later may be made accessible from another > environment that loses the filemode (e.g. exporting ext4 via > CIFS mount, visiting a Cygwin managed repository with > MsysGit). In such a case, it may be necessary to set this > variable to 'false'.
^^^^^^^^