aboutsummaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-05-03 15:29:25 -0700
committerJunio C Hamano <gitster@pobox.com>2012-05-03 15:29:25 -0700
commit66bca3f7229a475bae4f37c3b3e93dd5ae479b5d (patch)
tree4fef9358634ee243f20d72d5bdb4e1bb8eec5d1e /builtin
parentbeac07eab9d32a62539ba6f2091e6574b67a638f (diff)
parent0997adaa74dfe07cee3180c3a6fd91949fb4e3d8 (diff)
downloadgit-66bca3f7229a475bae4f37c3b3e93dd5ae479b5d.tar.gz
git-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')
-rw-r--r--builtin/fetch.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/builtin/fetch.c b/builtin/fetch.c
index cfb43df4e..1c8cb6244 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(&note);
if (ref) {
- rc |= update_local_ref(ref, what, &note);
+ rc |= update_local_ref(ref, what, rm, &note);
free(ref);
} else
strbuf_addf(&note, "* %-*s %-*s -> FETCH_HEAD",