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>
This commit is contained in:
Daniel Barkalow 2008-04-17 19:32:35 -04:00 committed by Junio C Hamano
parent bef70b22ba
commit e0aaa29ff3
3 changed files with 13 additions and 8 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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);