From: Junio C Hamano <gitster@pobox.com>
Date: Wed, 11 Feb 2009 17:22:16 +0000 (-0800)
Subject: Squelch overzealous "ignoring dangling symref" in an empty repository
X-Git-Tag: v1.6.2-rc1~28
X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/9e5b80cd87a511f3403b6f88f87ef40844695f6b

Squelch overzealous "ignoring dangling symref" in an empty repository

057e713 (Warn use of "origin" when remotes/origin/HEAD is dangling,
2009-02-08) tried to warn dangling refs/remotes/origin/HEAD only when
"origin" was used to refer to it.  There was one corner case a symref is
expected to be dangling and this warning is unwarranted: HEAD in an empty
repository.

This squelches the warning for this special case.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

diff --git a/sha1_name.c b/sha1_name.c
index 3bd2ef0e7c..2f75179f4c 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -278,7 +278,8 @@ int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref)
 				*ref = xstrdup(r);
 			if (!warn_ambiguous_refs)
 				break;
-		} else if (flag & REF_ISSYMREF)
+		} else if ((flag & REF_ISSYMREF) &&
+			   (len != 4 || strcmp(str, "HEAD")))
 			warning("ignoring dangling symref %s.", fullref);
 	}
 	free(last_branch);