Improve error propagation in shallow call

This commit is contained in:
Ben Straub 2014-02-18 14:05:30 -08:00
parent e0ebaaa53e
commit 9bda5fb8c1
2 changed files with 11 additions and 4 deletions

View File

@ -2001,9 +2001,10 @@ int git_repository_is_shallow(git_repository *repo)
error = git_path_lstat(path.ptr, &st);
git_buf_free(&path);
if (error == GIT_ENOTFOUND)
if (error == GIT_ENOTFOUND) {
giterr_clear();
return 0;
if (error < 0)
return -1;
return st.st_size == 0 ? 0 : 1;
}
return error < 0 ? error : st.st_size == 0 ? 0 : 1;
}

View File

@ -31,3 +31,9 @@ void test_repo_shallow__shallow_repo(void)
cl_assert_equal_i(1, git_repository_is_shallow(g_repo));
}
void test_repo_shallow__clears_errors(void)
{
g_repo = cl_git_sandbox_init("testrepo.git");
cl_assert_equal_i(0, git_repository_is_shallow(g_repo));
cl_assert_equal_p(NULL, giterr_last());
}