diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-05-03 15:29:25 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-05-03 15:29:25 -0700 |
commit | 66bca3f7229a475bae4f37c3b3e93dd5ae479b5d (patch) | |
tree | 4fef9358634ee243f20d72d5bdb4e1bb8eec5d1e /builtin/fetch.c | |
parent | Merge branch 'rl/maint-stash-i18n-save-error' into maint (diff) | |
parent | fetch: describe new refs based on where it came from (diff) | |
download | tgif-66bca3f7229a475bae4f37c3b3e93dd5ae479b5d.tar.xz |
Merge branch 'mb/fetch-call-a-non-branch-a-ref' into maint
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/fetch.c')
-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", |