When calling resolve_ref from check_symref set reading to 1, since we do want to know if the given ref doesn't exist. This means that "git symbolic-ref foo" will now print "fatal: No such ref: foo" as expected. Signed-off-by: Julian Phillips <julian@xxxxxxxxxxxxxxxxx> --- While looking at how fetch worked, I noticed that symbolic-ref was supposed to differentiate between non-existent refs and non-symbolic refs. Something I hadn't noticed it doing on those occasions when my fingers had failed me ... I also noticed that the man page says that symbolic-ref will return 1 when the specified reference is non-symbolic. This is only true when using -q, but I don't know if the code or man page wants changing ... builtin-symbolic-ref.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/builtin-symbolic-ref.c b/builtin-symbolic-ref.c index d41b406..a93c85d 100644 --- a/builtin-symbolic-ref.c +++ b/builtin-symbolic-ref.c @@ -9,7 +9,7 @@ static void check_symref(const char *HEAD, int quiet) { unsigned char sha1[20]; int flag; - const char *refs_heads_master = resolve_ref(HEAD, sha1, 0, &flag); + const char *refs_heads_master = resolve_ref(HEAD, sha1, 1, &flag); if (!refs_heads_master) die("No such ref: %s", HEAD); -- 1.5.0.4 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html