Thread (8 messages) flat view 8 messages, 3 authors, 2016-06-15
DORMANTno replies

[PATCH] dwim_ref: fix dangling symref warning

From: Jeff King <hidden>
Date: 2016-06-15 22:48:17
Subsystem: the rest · Maintainer: Linus Torvalds

If we encounter a symref that is dangling, in most cases we
will warn about it. The one exception is a dangling HEAD, as
that indicates a branch yet to be born.

However, the check in dwim_ref was not quite right. If we
were fed something like "HEAD^0" we would try to resolve
"HEAD", see that it is dangling, and then check whether the
_original_ string we got was "HEAD" (which it wasn't in this
case). And that makes no sense; the dangling thing we found
was not "HEAD^0" but rather "HEAD".

Fixing this squelches a scary warning from "submodule
summary HEAD" (and consequently "git status" with
status.submodulesummary set) in an empty repo, as the
submodule script calls "git rev-parse -q --verify HEAD^0".

Signed-off-by: Jeff King <redacted>
---
 sha1_name.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/sha1_name.c b/sha1_name.c
index 7729925..43884c6 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -280,8 +280,7 @@ 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) &&
-			   (len != 4 || strcmp(str, "HEAD")))
+		} else if ((flag & REF_ISSYMREF) && strcmp(fullref, "HEAD"))
 			warning("ignoring dangling symref %s.", fullref);
 	}
 	free(last_branch);
-- 
1.7.0.25.g1cf14
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help