diff --git a/cache.h b/cache.h index a5eeead1e2..767a50e4ed 100644 --- a/cache.h +++ b/cache.h @@ -525,6 +525,7 @@ extern int auto_crlf; extern int read_replace_refs; extern int fsync_object_files; extern int core_preload_index; +extern int hide_dotfiles; enum safe_crlf { SAFE_CRLF_FALSE = 0, diff --git a/compat/mingw.c b/compat/mingw.c index e1ac77d0ed..126b784119 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -131,8 +131,9 @@ static int make_hidden(const char *path) #undef mkdir int mingw_mkdir(const char *path, int mode) { + extern int hide_dotfiles; int ret = mkdir(path); - if (!ret) { + if (!ret && hide_dotfiles) { /* * In Windows a file or dir starting with a dot is not * automatically hidden. So lets mark it as hidden when diff --git a/config.c b/config.c index c644061136..49010e4890 100644 --- a/config.c +++ b/config.c @@ -503,6 +503,11 @@ static int git_default_core_config(const char *var, const char *value) return 0; } + if (!strcmp(var, "core.hidedotfiles")) { + hide_dotfiles = git_config_bool(var, value); + return 0; + } + /* Add other config variables here and to Documentation/config.txt. */ return 0; } diff --git a/environment.c b/environment.c index 5de6837840..ea1abbf289 100644 --- a/environment.c +++ b/environment.c @@ -50,6 +50,7 @@ enum push_default_type push_default = PUSH_DEFAULT_MATCHING; #endif enum object_creation_mode object_creation_mode = OBJECT_CREATION_MODE; int grafts_replace_parents = 1; +int hide_dotfiles = 1; /* Parallel index stat data preload? */ int core_preload_index = 0;