Commit cc6b4162 by Russell Belfer

It is okay to not have a .gitconfig file

Opening a repo is generating an error if you don't have a
.gitconfig file in your home directory, but that should be
legal.
parent a9069f61
...@@ -93,7 +93,7 @@ int git_config_add_file_ondisk( ...@@ -93,7 +93,7 @@ int git_config_add_file_ondisk(
assert(cfg && path); assert(cfg && path);
if (!git_path_isfile(path)) { if (!git_path_isfile(path)) {
giterr_set(GITERR_CONFIG, "File '%s' doesn't exists.", path); giterr_set(GITERR_CONFIG, "Cannot find config file '%s'", path);
return GIT_ENOTFOUND; return GIT_ENOTFOUND;
} }
......
...@@ -450,37 +450,44 @@ static int load_config( ...@@ -450,37 +450,44 @@ static int load_config(
const char *xdg_config_path, const char *xdg_config_path,
const char *system_config_path) const char *system_config_path)
{ {
int error;
git_buf config_path = GIT_BUF_INIT; git_buf config_path = GIT_BUF_INIT;
git_config *cfg = NULL; git_config *cfg = NULL;
assert(repo && out); assert(repo && out);
if (git_config_new(&cfg) < 0) if ((error = git_config_new(&cfg)) < 0)
return -1; return error;
if (git_buf_joinpath( error = git_buf_joinpath(
&config_path, repo->path_repository, GIT_CONFIG_FILENAME_INREPO) < 0) &config_path, repo->path_repository, GIT_CONFIG_FILENAME_INREPO);
if (error < 0)
goto on_error; goto on_error;
if (git_config_add_file_ondisk(cfg, config_path.ptr, GIT_CONFIG_LEVEL_LOCAL, 0) < 0) if ((error = git_config_add_file_ondisk(
cfg, config_path.ptr, GIT_CONFIG_LEVEL_LOCAL, 0)) < 0 &&
error != GIT_ENOTFOUND)
goto on_error; goto on_error;
git_buf_free(&config_path); git_buf_free(&config_path);
if (global_config_path != NULL) { if (global_config_path != NULL &&
if (git_config_add_file_ondisk(cfg, global_config_path, GIT_CONFIG_LEVEL_GLOBAL, 0) < 0) (error = git_config_add_file_ondisk(
goto on_error; cfg, global_config_path, GIT_CONFIG_LEVEL_GLOBAL, 0)) < 0 &&
} error != GIT_ENOTFOUND)
goto on_error;
if (xdg_config_path != NULL) { if (xdg_config_path != NULL &&
if (git_config_add_file_ondisk(cfg, xdg_config_path, GIT_CONFIG_LEVEL_XDG, 0) < 0) (error = git_config_add_file_ondisk(
goto on_error; cfg, xdg_config_path, GIT_CONFIG_LEVEL_XDG, 0)) < 0 &&
} error != GIT_ENOTFOUND)
goto on_error;
if (system_config_path != NULL) { if (system_config_path != NULL &&
if (git_config_add_file_ondisk(cfg, system_config_path, GIT_CONFIG_LEVEL_SYSTEM, 0) < 0) (error = git_config_add_file_ondisk(
goto on_error; cfg, system_config_path, GIT_CONFIG_LEVEL_SYSTEM, 0)) < 0 &&
} error != GIT_ENOTFOUND)
goto on_error;
*out = cfg; *out = cfg;
return 0; return 0;
...@@ -489,7 +496,7 @@ on_error: ...@@ -489,7 +496,7 @@ on_error:
git_buf_free(&config_path); git_buf_free(&config_path);
git_config_free(cfg); git_config_free(cfg);
*out = NULL; *out = NULL;
return -1; return error;
} }
int git_repository_config__weakptr(git_config **out, git_repository *repo) int git_repository_config__weakptr(git_config **out, git_repository *repo)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment