summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-04-26 17:57:43 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-04-26 17:57:44 (GMT)
commit8a90ddd7055c3659e0e429d319b31bbabb8dc982 (patch)
treebbd17abb5ad26c62ba28fe7c6c39973ecb729b64 /builtin
parent653787aea5cddc9d79dcd1431d1fc76b1e7a6b51 (diff)
parent0997adaa74dfe07cee3180c3a6fd91949fb4e3d8 (diff)
downloadgit-8a90ddd7055c3659e0e429d319b31bbabb8dc982.zip
git-8a90ddd7055c3659e0e429d319b31bbabb8dc982.tar.gz
git-8a90ddd7055c3659e0e429d319b31bbabb8dc982.tar.bz2
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.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/builtin/fetch.c b/builtin/fetch.c
index cfb43df..1c8cb62 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",