diff options
author | Vicent Marti <vicent@github.com> | 2014-02-19 00:21:38 +0100 |
---|---|---|
committer | Vicent Marti <vicent@github.com> | 2014-02-19 00:21:38 +0100 |
commit | 2dc49ea93c5c320216806089fee579021f3ce9cf (patch) | |
tree | 84f1fdd97a538cc0a78882150de786d049dd2953 | |
parent | e0ebaaa53ea1154a1f392dae463453ac6c428d78 (diff) | |
parent | 864535cf850973378c8283f62347055d2593c685 (diff) | |
download | libgit2-2dc49ea93c5c320216806089fee579021f3ce9cf.tar.gz |
Merge pull request #2124 from libgit2/better-shallow-errors
Improve error propagation in shallow call
-rw-r--r-- | src/repository.c | 7 | ||||
-rw-r--r-- | tests/repo/shallow.c | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/repository.c b/src/repository.c index 9f0c2f68f..96ed30666 100644 --- a/src/repository.c +++ b/src/repository.c @@ -2001,9 +2001,12 @@ 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 error; return 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()); +} |