Commit 3f4bc213 by Edward Thomson

repo: ignore empty init.defaultbranch

The init.defaultbranch option may be set, but empty.  In this case, we
should ignore it instead of trying to set our default branch to
`refs/heads/`.
parent 32350e89
...@@ -2092,7 +2092,8 @@ static int repo_init_head(const char *repo_dir, const char *given) ...@@ -2092,7 +2092,8 @@ static int repo_init_head(const char *repo_dir, const char *given)
if (given) { if (given) {
initial_head = given; initial_head = given;
} else if ((error = git_config_open_default(&cfg)) >= 0 && } else if ((error = git_config_open_default(&cfg)) >= 0 &&
(error = git_config_get_string_buf(&cfg_branch, cfg, "init.defaultbranch")) >= 0) { (error = git_config_get_string_buf(&cfg_branch, cfg, "init.defaultbranch")) >= 0 &&
*cfg_branch.ptr) {
initial_head = cfg_branch.ptr; initial_head = cfg_branch.ptr;
} }
......
...@@ -688,3 +688,19 @@ void test_repo_init__defaultbranch_config(void) ...@@ -688,3 +688,19 @@ void test_repo_init__defaultbranch_config(void)
git_reference_free(head); git_reference_free(head);
} }
void test_repo_init__defaultbranch_config_empty(void)
{
git_reference *head;
cl_set_cleanup(&cleanup_repository, "repo");
create_tmp_global_config("tmp_global_path", "init.defaultbranch", "");
cl_git_pass(git_repository_init(&g_repo, "repo", 0));
cl_git_pass(git_reference_lookup(&head, g_repo, "HEAD"));
cl_assert_equal_s("refs/heads/master", git_reference_symbolic_target(head));
git_reference_free(head);
}
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