Merge branch 'mb/fetch-call-a-non-branch-a-ref'
authorJunio C Hamano <gitster@pobox.com>
Thu, 26 Apr 2012 17:57:43 +0000 (10:57 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 26 Apr 2012 17:57:44 +0000 (10:57 -0700)
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

1  2 
builtin/fetch.c

diff --cc builtin/fetch.c
index cfb43df4e843970a7ff93078ea1bcbbdb9985260,0f80cf81855fd8801de5a5f0548686fb19ab5068..1c8cb62445a3dc7a0ff1ff6d2663faec1bced167
@@@ -293,18 -294,26 +294,26 @@@ static int update_local_ref(struct 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]");
 -                      if ((recurse_submodules != RECURSE_SUBMODULES_OFF) &&
 -                          (recurse_submodules != RECURSE_SUBMODULES_ON))
 -                              check_for_new_submodule_commits(ref->new_sha1);
+               } else {
+                       msg = "storing ref";
+                       what = _("[new ref]");
                }
  
 +              if ((recurse_submodules != RECURSE_SUBMODULES_OFF) &&
 +                  (recurse_submodules != RECURSE_SUBMODULES_ON))
 +                      check_for_new_submodule_commits(ref->new_sha1);
                r = s_update_ref(msg, ref, 0);
                strbuf_addf(display, "%c %-*s %-*s -> %s%s",
                            r ? '!' : '*',