Merge branch 'js/init-db-update-for-mingw'

"git init" forgot to read platform-specific repository
configuration, which made Windows port to ignore settings of
core.hidedotfiles, for example.

* js/init-db-update-for-mingw:
  mingw: respect core.hidedotfiles = false in git-init again
maint
Junio C Hamano 2019-04-16 19:28:05 +09:00
commit 63643865d2
2 changed files with 18 additions and 0 deletions

View File

@ -156,6 +156,9 @@ static int git_init_db_config(const char *k, const char *v, void *cb)
if (!strcmp(k, "init.templatedir")) if (!strcmp(k, "init.templatedir"))
return git_config_pathname(&init_db_template_dir, k, v); return git_config_pathname(&init_db_template_dir, k, v);


if (starts_with(k, "core."))
return platform_core_config(k, v, cb);

return 0; return 0;
} }


@ -186,6 +189,7 @@ static int create_default_files(const char *template_path,
struct strbuf err = STRBUF_INIT; struct strbuf err = STRBUF_INIT;


/* Just look for `init.templatedir` */ /* Just look for `init.templatedir` */
init_db_template_dir = NULL; /* re-set in case it was set before */
git_config(git_init_db_config, NULL); git_config(git_init_db_config, NULL);


/* /*
@ -362,6 +366,9 @@ int init_db(const char *git_dir, const char *real_git_dir,
} }
startup_info->have_repository = 1; startup_info->have_repository = 1;


/* Just look for `core.hidedotfiles` */
git_config(git_init_db_config, NULL);

safe_create_dir(git_dir, 0); safe_create_dir(git_dir, 0);


init_is_bare_repository = is_bare_repository(); init_is_bare_repository = is_bare_repository();

View File

@ -454,6 +454,17 @@ test_expect_success 're-init from a linked worktree' '
) )
' '


test_expect_success MINGW 'core.hidedotfiles = false' '
git config --global core.hidedotfiles false &&
rm -rf newdir &&
mkdir newdir &&
(
sane_unset GIT_DIR GIT_WORK_TREE GIT_CONFIG &&
git -C newdir init
) &&
! is_hidden newdir/.git
'

test_expect_success MINGW 'redirect std handles' ' test_expect_success MINGW 'redirect std handles' '
GIT_REDIRECT_STDOUT=output.txt git rev-parse --git-dir && GIT_REDIRECT_STDOUT=output.txt git rev-parse --git-dir &&
test .git = "$(cat output.txt)" && test .git = "$(cat output.txt)" &&