summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Barkalow <barkalow@iabervon.org>2008-04-17 19:32:35 -0400
committerJunio C Hamano <gitster@pobox.com>2008-05-04 17:41:44 -0700
commite0aaa29ff324c40a6428d5cc26867392eedf94ad (patch)
treedcc53a8fdcdbb7b1ef493bd72f3197c72289683b
parentbef70b22ba63d71c1ae2e070e64ff9863ea1ad14 (diff)
downloadgit-e0aaa29ff324c40a6428d5cc26867392eedf94ad.tar.gz
Have a constant extern refspec for "--tags"
The refspec refs/tags/*:refs/tags/* is sufficiently common and generic to merit having a constant instead of generating it as needed. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-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);