diff --git a/sha1_name.c b/sha1_name.c
index 5d0ac0263d04d7ec72a3b7dec4aaf47aec80da5e..2f75179f4c6c1d05bdd7594b23dcf77007c26751 100644 (file)
--- a/sha1_name.c
+++ b/sha1_name.c
char fullref[PATH_MAX];
unsigned char sha1_from_ref[20];
unsigned char *this_result;
+ int flag;
this_result = refs_found ? sha1_from_ref : sha1;
mksnpath(fullref, sizeof(fullref), *p, len, str);
- r = resolve_ref(fullref, this_result, 1, NULL);
+ r = resolve_ref(fullref, this_result, 1, &flag);
if (r) {
if (!refs_found++)
*ref = xstrdup(r);
if (!warn_ambiguous_refs)
break;
- }
+ } else if ((flag & REF_ISSYMREF) &&
+ (len != 4 || strcmp(str, "HEAD")))
+ warning("ignoring dangling symref %s.", fullref);
}
free(last_branch);
return refs_found;