summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@github.com>2016-04-11 13:29:54 -0400
committerEdward Thomson <ethomson@github.com>2016-04-11 13:29:54 -0400
commit0e00eecf83d8811e08024da3becf5159bc9d6226 (patch)
treee946ee3798c666ccabe3d3c44571d26fc5c19b44
parentb93b74b9e30866492205e379b5da32cbcd399680 (diff)
parent77965c685d0ca8d5dc65ba3aedb41cca5485ae04 (diff)
downloadlibgit2-0e00eecf83d8811e08024da3becf5159bc9d6226.tar.gz
Merge pull request #3736 from libgit2/cmn/dwim-general-message
refs: provide a more general error message for dwim
-rw-r--r--src/refs.c3
-rw-r--r--tests/refs/lookup.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/src/refs.c b/src/refs.c
index a15e31b53..26c80021f 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -289,6 +289,9 @@ cleanup:
"Could not use '%s' as valid reference name", git_buf_cstr(&name));
}
+ if (error == GIT_ENOTFOUND)
+ giterr_set(GITERR_REFERENCE, "no reference found for shorthand '%s'", refname);
+
git_buf_free(&name);
git_buf_free(&refnamebuf);
return error;
diff --git a/tests/refs/lookup.c b/tests/refs/lookup.c
index d076e491f..456d0d2a8 100644
--- a/tests/refs/lookup.c
+++ b/tests/refs/lookup.c
@@ -58,3 +58,11 @@ void test_refs_lookup__namespace(void)
error = git_reference_lookup(&ref, g_repo, "refs/heads/");
cl_assert_equal_i(error, GIT_EINVALIDSPEC);
}
+
+void test_refs_lookup__dwim_notfound(void)
+{
+ git_reference *ref;
+
+ cl_git_fail_with(GIT_ENOTFOUND, git_reference_dwim(&ref, g_repo, "idontexist"));
+ cl_assert_equal_s("no reference found for shorthand 'idontexist'", giterr_last()->message);
+}