diff options
-rw-r--r-- | src/revparse.c | 6 | ||||
-rw-r--r-- | tests-clar/refs/revparse.c | 3 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/revparse.c b/src/revparse.c index 6cfea0ca8..650d7a904 100644 --- a/src/revparse.c +++ b/src/revparse.c @@ -705,7 +705,7 @@ int git_revparse_single(git_object **out, git_repository *repo, const char *spec *out = NULL; - do { + while (spec[pos]) { switch (spec[pos]) { case '^': if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, false)) < 0) @@ -813,9 +813,9 @@ int git_revparse_single(git_object **out, git_repository *repo, const char *spec pos++; identifier_len++; } - } while (spec[pos]); + } - if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, true)) < 0) + if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, false)) < 0) goto cleanup; *out = base_rev; diff --git a/tests-clar/refs/revparse.c b/tests-clar/refs/revparse.c index 05a95652a..02acb8844 100644 --- a/tests-clar/refs/revparse.c +++ b/tests-clar/refs/revparse.c @@ -64,6 +64,8 @@ void test_refs_revparse__invalid_reference_name(void) cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense")); cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense^1")); cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense~2")); + cl_git_fail(git_revparse_single(&g_obj, g_repo, "")); + } void test_refs_revparse__shas(void) @@ -74,7 +76,6 @@ void test_refs_revparse__shas(void) void test_refs_revparse__head(void) { - test_object("", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); test_object("HEAD", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); test_object("HEAD^0", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); test_object("HEAD~0", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); |