Commit 08e1fd65 by Patrick Steinhardt

describe: only abort without tags if fallback is not allowed.

When no reference names could be found we did error out when trying to describe
a commit. This is wrong, though, when the option to fall back to a commit's
object ID is set.
parent c843736d
...@@ -693,7 +693,7 @@ int git_describe_commit( ...@@ -693,7 +693,7 @@ int git_describe_commit(
get_name, &data)) < 0) get_name, &data)) < 0)
goto cleanup; goto cleanup;
if (git_oidmap_size(data.names) == 0) { if (git_oidmap_size(data.names) == 0 && !opts->show_commit_oid_as_fallback) {
giterr_set(GITERR_DESCRIBE, "Cannot describe - " giterr_set(GITERR_DESCRIBE, "Cannot describe - "
"No reference found, cannot describe anything."); "No reference found, cannot describe anything.");
error = -1; error = -1;
......
...@@ -28,7 +28,7 @@ static int delete_cb(git_reference *ref, void *payload) ...@@ -28,7 +28,7 @@ static int delete_cb(git_reference *ref, void *payload)
return 0; return 0;
} }
void test_describe_describe__cannot_describe_against_a_repo_with_no_ref(void) void test_describe_describe__describe_a_repo_with_no_refs(void)
{ {
git_repository *repo; git_repository *repo;
git_describe_options opts = GIT_DESCRIBE_OPTIONS_INIT; git_describe_options opts = GIT_DESCRIBE_OPTIONS_INIT;
...@@ -41,8 +41,13 @@ void test_describe_describe__cannot_describe_against_a_repo_with_no_ref(void) ...@@ -41,8 +41,13 @@ void test_describe_describe__cannot_describe_against_a_repo_with_no_ref(void)
cl_git_pass(git_reference_foreach(repo, delete_cb, NULL)); cl_git_pass(git_reference_foreach(repo, delete_cb, NULL));
/* Impossible to describe without falling back to OIDs */
cl_git_fail(git_describe_commit(&result, object, &opts)); cl_git_fail(git_describe_commit(&result, object, &opts));
/* Try again with OID fallbacks */
opts.show_commit_oid_as_fallback = 1;
cl_git_pass(git_describe_commit(&result, object, &opts));
git_describe_result_free(result); git_describe_result_free(result);
git_object_free(object); git_object_free(object);
git_buf_free(&buf); git_buf_free(&buf);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment