Commit 0e00eecf83d8811e08024da3becf5159bc9d6226

Edward Thomson 2016-04-11T13:29:54

Merge pull request #3736 from libgit2/cmn/dwim-general-message refs: provide a more general error message for dwim

diff --git a/src/refs.c b/src/refs.c
index a15e31b..26c8002 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 d076e49..456d0d2 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);
+}