Re: [PATCH v2] Documentation: declare "core.ignorecase" as internal variable

2018-06-24 Thread Torsten Bögershausen
On Sun, Jun 24, 2018 at 12:44:26PM +0200, Marc Strapetz wrote:
> The current description of "core.ignoreCase" reads like an option which
> is intended to be changed by the user while it's actually expected to
> be set by Git on initialization only. This is especially important for
> Git for Windows, as noted by Bryan Turner [1]:
> 
> Git on Windows is not designed to run with anything other than
> core.ignoreCase=true, and attempting to do so will cause
> unexpected behavior. In other words, it's not a behavior toggle so
> user's can request the functionality to work one way or the other;
> it's an implementation detail that `git init` and `git clone` set
> when a repository is created purely so they don't have to probe
> the file system each time you run a `git` command.

This is a nice explanation, thanaks for that,
Some users of Mac OS or SAMBA will see core.ignoreCase=true, and are not
supposed to change it.

The same explanation (Git for Windows)
is alse valid for HFS+ and APFS under Mac OS and VFAT under all OS.
(or even an ext4 file system under Linux exported to Mac OS using SAMBA)

May be something like this?

 Git on a case insensitve file system (Windows, Mac OS, VFAT, SAMBA)
 is not designed to run with anything other than
 core.ignoreCase=true, and attempting to do so will cause
 unexpected behavior. In other words, it's not a behavior toggle so
.



> 
> [1] https://marc.info/?l=git=152972992729761=2
> 
> Signed-off-by: Marc Strapetz 
> ---
>  Documentation/config.txt | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index ab641bf5a..c25693828 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -390,7 +390,7 @@ core.hideDotFiles::
>   default mode is 'dotGitOnly'.
> 
>  core.ignoreCase::
> - If true, this option enables various workarounds to enable
> + Internal variable which enables various workarounds to enable
>   Git to work better on filesystems that are not case sensitive,
>   like FAT. For example, if a directory listing finds
>   "makefile" when Git expects "Makefile", Git will assume
> @@ -399,7 +399,7 @@ core.ignoreCase::
>  +
>  The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
>  will probe and set core.ignoreCase true if appropriate when the repository
> -is created.
> +is created. Modifying this value afterwards may result in unexpected
> behavior.
> 
>  core.precomposeUnicode::
>   This option is only used by Mac OS implementation of Git.
> -- 
> 2.17.0.rc0.3.gb1b5a51b2


Re: [PATCH v2] Documentation: declare "core.ignorecase" as internal variable

2018-06-24 Thread Sascha Silbe
Hello Bryan, hello Marc,

Marc Strapetz  writes:

> The current description of "core.ignoreCase" reads like an option which
> is intended to be changed by the user while it's actually expected to
> be set by Git on initialization only. This is especially important for
> Git for Windows, as noted by Bryan Turner [1]:

Does this apply to Mac OS X as well? I helped someone recently who had
trouble with renamed files (case change only) in a repository residing
on a case-insensitive HFS+ file system. Setting core.ignoreCase
explicitly (apparently it didn't get set automatically during clone for
some reason) helped; the files are recognised correctly now and the
case-only rename could be pulled. Is the post-clone change insufficient
on Mac OS X? Do we need to replace the existing repository and clone
again using '--config core.ignoreCase=true' to avoid future issues?


PS: Including the message-id of the mail being referenced would be
useful; the id in the URL you gave is specific to the service being
used (public-inbox.org) and cannot be used to reference the mail in
any other archive (local or public). If you use the mid:
syntax (RFC 1630) some MUAs can even recognise the link and open the
mail directly.

Sascha
-- 
Softwareentwicklung Sascha Silbe, Niederhofenstraße 5/1, 71229 Leonberg
https://se-silbe.de/
USt-IdNr.: DE281696641


[PATCH v2] Documentation: declare "core.ignorecase" as internal variable

2018-06-24 Thread Marc Strapetz

The current description of "core.ignoreCase" reads like an option which
is intended to be changed by the user while it's actually expected to
be set by Git on initialization only. This is especially important for
Git for Windows, as noted by Bryan Turner [1]:

Git on Windows is not designed to run with anything other than
core.ignoreCase=true, and attempting to do so will cause
unexpected behavior. In other words, it's not a behavior toggle so
user's can request the functionality to work one way or the other;
it's an implementation detail that `git init` and `git clone` set
when a repository is created purely so they don't have to probe
the file system each time you run a `git` command.

[1] https://marc.info/?l=git=152972992729761=2

Signed-off-by: Marc Strapetz 
---
 Documentation/config.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index ab641bf5a..c25693828 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -390,7 +390,7 @@ core.hideDotFiles::
default mode is 'dotGitOnly'.

 core.ignoreCase::
-   If true, this option enables various workarounds to enable
+   Internal variable which enables various workarounds to enable
Git to work better on filesystems that are not case sensitive,
like FAT. For example, if a directory listing finds
"makefile" when Git expects "Makefile", Git will assume
@@ -399,7 +399,7 @@ core.ignoreCase::
 +
 The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
 will probe and set core.ignoreCase true if appropriate when the repository
-is created.
+is created. Modifying this value afterwards may result in unexpected 
behavior.


 core.precomposeUnicode::
This option is only used by Mac OS implementation of Git.
--
2.17.0.rc0.3.gb1b5a51b2