diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-02-08 23:52:01 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-02-10 22:26:32 -0800 |
commit | 057e71384a0eff83236268dcd3ff7ebc7789de74 (patch) | |
tree | b599fded5625c3489f60568ba482df9ba3e71dbc | |
parent | remote prune: warn dangling symrefs (diff) | |
download | tgif-057e71384a0eff83236268dcd3ff7ebc7789de74.tar.xz |
Warn use of "origin" when remotes/origin/HEAD is dangling
The previous one squelched the diagnositic message we used to issue every
time we enumerated the refs and noticed a dangling ref. This adds the
warning back to the place where the user actually attempts to use it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | sha1_name.c | 6 | ||||
-rwxr-xr-x | t/t5505-remote.sh | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/sha1_name.c b/sha1_name.c index 5d0ac0263d..3bd2ef0e7c 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -268,16 +268,18 @@ int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref) 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) + warning("ignoring dangling symref %s.", fullref); } free(last_branch); return refs_found; diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh index 2067dc558f..eb637184a0 100755 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@ -421,6 +421,12 @@ test_expect_success 'remote prune to cause a dangling symref' ' git branch -a ) 2>err && ! grep "points nowhere" err + ( + cd seven && + test_must_fail git branch nomore origin + ) 2>err && + grep "dangling symref" err ' test_done + |