Re: [PATCH] mingw: introduce the 'core.hideDotFiles' setting
From: Ramsay Jones <hidden>
Date: 2016-06-16 02:19:10
On 04/05/16 15:40, Johannes Schindelin wrote:
quoted hunk ↗ jump to hunk
From: Erik Faye-Lund <redacted> On Unix (and Linux) it is common that files and directories whose names start with a dot are not shown by default. This convention is used by Git: the .git/ directory should be left alone by regular users, and only accessed through Git itself. On Windows, no such convention exists. Instead, there is an explicit flag to mark files or directories as hidden. In the early days, Git for Windows did not mark the .git/ directory (or for that matter, any file or directory whose name starts with a dot) hidden. This lead to quite a bit of confusion, and even loss of data. Consequently, Git for Windows introduced the core.hideDotFiles setting, with three possible values: true, false, and dotGitOnly, defaulting to marking only the .git/ directory as hidden. The rationale: users do not need to access .git/ directly, and indeed (as was demonstrated) should not really see that directory, either. However, not all dot files should be hidden, as e.g. Eclipse does not show them (and the user would therefore be unable to add, say, a .gitattributes file). In over five years since the last attempt to bring this patch into core Git, this patch has served Git for Windows' users well: no single report indicated problems with the hidden .git/ directory, and the stream of problems caused by the previously non-hidden .git/ directory simply stopped. Initial-Test-By: Pat Thoyts [off-list ref] Signed-off-by: Erik Faye-Lund <redacted> Signed-off-by: Johannes Schindelin <redacted> --- Let's try this again (I will not point you to the previous submission, out of personal embarrassment). This patch has served us so well in the Git for Windows project that there is little sense in hiding it from core Git. Documentation/config.txt | 6 ++++++ builtin/init-db.c | 1 + cache.h | 7 +++++++ compat/mingw.c | 38 ++++++++++++++++++++++++++++++++++++++ config.c | 8 ++++++++ environment.c | 1 + git-compat-util.h | 4 ++++ t/t0001-init.sh | 30 ++++++++++++++++++++++++++++++ 8 files changed, 95 insertions(+)diff --git a/Documentation/config.txt b/Documentation/config.txt index 42d2b50..a9f599d 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt@@ -269,6 +269,12 @@ See linkgit:git-update-index[1]. + The default is true (when core.filemode is not specified in the config file). +core.hideDotFiles:: + (Windows-only) If true (which is the default), mark newly-created
The patch (if I'm reading it correctly) and the commit message indicate that the default is 'dotGitOnly'.
+ directories and files whose name starts with a dot as hidden. + If 'dotGitOnly', only the .git/ directory is hidden, but no other + files starting with a dot. +
ATB, Ramsay Jones