diff --git a/src/repository.c b/src/repository.c index c12df25c3..b9d180da4 100644 --- a/src/repository.c +++ b/src/repository.c @@ -777,8 +777,8 @@ static int repo_init_config( SET_REPO_CONFIG(string, "core.worktree", work_dir); } else if ((opts->flags & GIT_REPOSITORY_INIT__IS_REINIT) != 0) { - if ((error = git_config_delete(config, "core.worktree")) < 0) - goto cleanup; + if (git_config_delete(config, "core.worktree") < 0) + giterr_clear(); } } else { if (!are_symlinks_supported(repo_dir)) diff --git a/tests-clar/repo/init.c b/tests-clar/repo/init.c index 67a9917db..f76e8bc3d 100644 --- a/tests-clar/repo/init.c +++ b/tests-clar/repo/init.c @@ -378,3 +378,18 @@ void test_repo_init__extended_with_template(void) cleanup_repository("templated.git"); } + +void test_repo_init__can_reinit_an_initialized_repository(void) +{ + git_repository *reinit; + + cl_git_pass(git_futils_mkdir("extended", NULL, 0775, 0)); + cl_git_pass(git_repository_init(&_repo, "extended", false)); + + cl_git_pass(git_repository_init(&reinit, "extended", false)); + + cl_assert_equal_s(git_repository_path(_repo), git_repository_path(reinit)); + + git_repository_free(reinit); + cleanup_repository("extended"); +}