X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=remote.c;h=ca1f8f2eafbef40046f2890501ad757bde9585f1;hb=d2216a4b133f90a543a0e4c4a9f9809a043012d6;hp=b6a768e2605038ff4c85a0a115b8571013cc7d05;hpb=a4eab8f38ec174abe5eeab8649953460d80d634c;p=git.git diff --git a/remote.c b/remote.c index b6a768e26..ca1f8f2ea 100644 --- a/remote.c +++ b/remote.c @@ -1370,6 +1370,16 @@ int branch_merge_matches(struct branch *branch, return refname_match(branch->merge[i]->src, refname, ref_fetch_rules); } +static int ignore_symref_update(const char *refname) +{ + unsigned char sha1[20]; + int flag; + + if (!resolve_ref_unsafe(refname, sha1, 0, &flag)) + return 0; /* non-existing refs are OK */ + return (flag & REF_ISSYMREF); +} + static struct ref *get_expanded_map(const struct ref *remote_refs, const struct refspec *refspec) { @@ -1383,7 +1393,8 @@ static struct ref *get_expanded_map(const struct ref *remote_refs, if (strchr(ref->name, '^')) continue; /* a dereference item */ if (match_name_with_pattern(refspec->src, ref->name, - refspec->dst, &expn_name)) { + refspec->dst, &expn_name) && + !ignore_symref_update(expn_name)) { struct ref *cpy = copy_ref(ref); cpy->peer_ref = alloc_ref(expn_name); @@ -1633,8 +1644,9 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) "Your branch is ahead of '%s' by %d commits.\n", num_ours), base, num_ours); - strbuf_addf(sb, - _(" (use \"git push\" to publish your local commits)\n")); + if (advice_status_hints) + strbuf_addf(sb, + _(" (use \"git push\" to publish your local commits)\n")); } else if (!num_ours) { strbuf_addf(sb, Q_("Your branch is behind '%s' by %d commit, " @@ -1643,8 +1655,9 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) "and can be fast-forwarded.\n", num_theirs), base, num_theirs); - strbuf_addf(sb, - _(" (use \"git pull\" to update your local branch)\n")); + if (advice_status_hints) + strbuf_addf(sb, + _(" (use \"git pull\" to update your local branch)\n")); } else { strbuf_addf(sb, Q_("Your branch and '%s' have diverged,\n" @@ -1655,8 +1668,9 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) "respectively.\n", num_theirs), base, num_ours, num_theirs); - strbuf_addf(sb, - _(" (use \"git pull\" to merge the remote branch into yours)\n")); + if (advice_status_hints) + strbuf_addf(sb, + _(" (use \"git pull\" to merge the remote branch into yours)\n")); } return 1; }