fetch: describe new refs based on where it came from
[gitweb.git] / builtin / fetch.c
index 06d71e4e4c795a96c4554c44178545b0f146e6a3..0f80cf81855fd8801de5a5f0548686fb19ab5068 100644 (file)
@@ -294,16 +294,24 @@ 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]");
                        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]");
                }
 
                r = s_update_ref(msg, ref, 0);