char *user_config = expand_user_path("~/.gitconfig", 0);
char *repo_config;
- if (opts->git_dir)
- repo_config = mkpathdup("%s/config", opts->git_dir);
+ if (opts->commondir)
+ repo_config = mkpathdup("%s/config", opts->commondir);
else if (have_git_dir())
repo_config = git_pathdup("config");
else
opts.respect_includes = 1;
- if (have_git_dir())
+ if (have_git_dir()) {
+ opts.commondir = get_git_common_dir();
opts.git_dir = get_git_dir();
/*
* When setup_git_directory() was not yet asked to discover the
* notably, the current working directory is still the same after the
* call).
*/
- else if (!discover_git_directory(&commondir, &gitdir))
+ } else if (!discover_git_directory(&commondir, &gitdir)) {
+ opts.commondir = commondir.buf;
opts.git_dir = gitdir.buf;
+ }
git_config_with_options(cb, data, NULL, &opts);