diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-04-26 10:57:43 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-04-26 10:57:44 -0700 |
commit | 8a90ddd7055c3659e0e429d319b31bbabb8dc982 (patch) | |
tree | bbd17abb5ad26c62ba28fe7c6c39973ecb729b64 /builtin | |
parent | 653787aea5cddc9d79dcd1431d1fc76b1e7a6b51 (diff) | |
parent | 0997adaa74dfe07cee3180c3a6fd91949fb4e3d8 (diff) | |
download | git-8a90ddd7055c3659e0e429d319b31bbabb8dc982.tar.gz |
Merge branch 'mb/fetch-call-a-non-branch-a-ref'
The report from "git fetch" said "new branch" even for a non branch
ref.
By Marc Branchaud
* mb/fetch-call-a-non-branch-a-ref:
fetch: describe new refs based on where it came from
fetch: Give remote_ref to update_local_ref() as well
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/fetch.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/builtin/fetch.c b/builtin/fetch.c index cfb43df4e8..1c8cb62445 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -240,6 +240,7 @@ static int s_update_ref(const char *action, static int update_local_ref(struct ref *ref, const char *remote, + const struct ref *remote_ref, struct strbuf *display) { struct commit *current = NULL, *updated; @@ -293,13 +294,21 @@ static int update_local_ref(struct ref *ref, const char *msg; const char *what; int r; - if (!strncmp(ref->name, "refs/tags/", 10)) { + /* + * Nicely describe the new ref we're fetching. + * Base this on the remote's ref name, as it's + * more likely to follow a standard layout. + */ + const char *name = remote_ref ? remote_ref->name : ""; + if (!prefixcmp(name, "refs/tags/")) { msg = "storing tag"; what = _("[new tag]"); - } - else { + } else if (!prefixcmp(name, "refs/heads/")) { msg = "storing head"; what = _("[new branch]"); + } else { + msg = "storing ref"; + what = _("[new ref]"); } if ((recurse_submodules != RECURSE_SUBMODULES_OFF) && @@ -466,7 +475,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name, strbuf_reset(¬e); if (ref) { - rc |= update_local_ref(ref, what, ¬e); + rc |= update_local_ref(ref, what, rm, ¬e); free(ref); } else strbuf_addf(¬e, "* %-*s %-*s -> FETCH_HEAD", |