diff options
author | nulltoken <emeric.fermas@gmail.com> | 2012-08-29 14:20:53 +0200 |
---|---|---|
committer | nulltoken <emeric.fermas@gmail.com> | 2012-08-29 19:56:55 +0200 |
commit | 89cd5708d94d8eb68a5e3a7b0fbda6ee904fb148 (patch) | |
tree | b9ab5294270cbda955a82c9afb774abbb7efbf3a | |
parent | 319ad0ba208ec67523a808269b8662c88727a0c9 (diff) | |
download | libgit2-89cd5708d94d8eb68a5e3a7b0fbda6ee904fb148.tar.gz |
repository: make initialization cope with missing core.worktree
-rw-r--r-- | src/repository.c | 4 | ||||
-rw-r--r-- | tests-clar/repo/init.c | 15 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/repository.c b/src/repository.c index c12df25c..b9d180da 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 67a9917d..f76e8bc3 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"); +} |