projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'sb/gpg-plug-fd-leak' into maint
[git.git]
/
remote.c
diff --git
a/remote.c
b/remote.c
index b6a768e2605038ff4c85a0a115b8571013cc7d05..ca1f8f2eafbef40046f2890501ad757bde9585f1 100644
(file)
--- 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);
}
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)
{
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,
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);
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);
"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, "
} 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);
"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"
} 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);
"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;
}
}
return 1;
}