summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin-fetch.c10
-rw-r--r--remote.c9
-rw-r--r--remote.h2
3 files changed, 13 insertions, 8 deletions
diff --git a/builtin-fetch.c b/builtin-fetch.c
index 167f948036..30aa42df6e 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -127,14 +127,8 @@ static struct ref *get_ref_map(struct transport *transport,
/* Merge everything on the command line, but not --tags */
for (rm = ref_map; rm; rm = rm->next)
rm->merge = 1;
- if (tags == TAGS_SET) {
- struct refspec refspec;
- refspec.src = "refs/tags/";
- refspec.dst = "refs/tags/";
- refspec.pattern = 1;
- refspec.force = 0;
- get_fetch_map(remote_refs, &refspec, &tail, 0);
- }
+ if (tags == TAGS_SET)
+ get_fetch_map(remote_refs, tag_refspec, &tail, 0);
} else {
/* Use the defaults */
struct remote *remote = transport->remote;
diff --git a/remote.c b/remote.c
index 2d9af4023e..9cb40afd0e 100644
--- a/remote.c
+++ b/remote.c
@@ -2,6 +2,15 @@
#include "remote.h"
#include "refs.h"
+static struct refspec s_tag_refspec = {
+ 0,
+ 1,
+ "refs/tags/",
+ "refs/tags/"
+};
+
+const struct refspec *tag_refspec = &s_tag_refspec;
+
struct counted_string {
size_t len;
const char *s;
diff --git a/remote.h b/remote.h
index a38774bbdc..f0a79de210 100644
--- a/remote.h
+++ b/remote.h
@@ -51,6 +51,8 @@ struct refspec {
char *dst;
};
+extern const struct refspec *tag_refspec;
+
struct ref *alloc_ref(unsigned namelen);
struct ref *copy_ref_list(const struct ref *ref);