mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-11 18:17:54 +00:00
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.
This commit is contained in:
parent
a9069f6154
commit
cc6b4162de
@ -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(
|
|||||||
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:
|
|||||||
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user