Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Straub <bs@github.com>2014-02-19 02:05:30 +0400
committerBen Straub <bs@github.com>2014-02-19 02:05:30 +0400
commit9bda5fb8c1fa5d69616477f43b511b6f717115ec (patch)
tree50c4a74d66d1611c1f0104bb00675abb5e910427
parente0ebaaa53ea1154a1f392dae463453ac6c428d78 (diff)
Improve error propagation in shallow call
-rw-r--r--src/repository.c9
-rw-r--r--tests/repo/shallow.c6
2 files changed, 11 insertions, 4 deletions
diff --git a/src/repository.c b/src/repository.c
index 9f0c2f68f..89ae32473 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -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;
}
diff --git a/tests/repo/shallow.c b/tests/repo/shallow.c
index 1cc66ae40..5aeaf2def 100644
--- a/tests/repo/shallow.c
+++ b/tests/repo/shallow.c
@@ -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());
+}