Merge branch 'mh/retire-ref-fetch-rules'

Code simplification.

* mh/retire-ref-fetch-rules:
  refname_match(): always use the rules in ref_rev_parse_rules
This commit is contained in:
Junio C Hamano 2014-01-27 10:44:06 -08:00
commit 9bb5287098
3 changed files with 13 additions and 10 deletions

View File

@ -894,9 +894,12 @@ extern int dwim_log(const char *str, int len, unsigned char *sha1, char **ref);
extern int interpret_branch_name(const char *str, int len, struct strbuf *); extern int interpret_branch_name(const char *str, int len, struct strbuf *);
extern int get_sha1_mb(const char *str, unsigned char *sha1); extern int get_sha1_mb(const char *str, unsigned char *sha1);
extern int refname_match(const char *abbrev_name, const char *full_name, const char **rules); /*
extern const char *ref_rev_parse_rules[]; * Return true iff abbrev_name is a possible abbreviation for
#define ref_fetch_rules ref_rev_parse_rules * full_name according to the rules defined by ref_rev_parse_rules in
* refs.c.
*/
extern int refname_match(const char *abbrev_name, const char *full_name);
extern int create_symref(const char *ref, const char *refs_heads_master, const char *logmsg); extern int create_symref(const char *ref, const char *refs_heads_master, const char *logmsg);
extern int validate_headref(const char *ref); extern int validate_headref(const char *ref);

6
refs.c
View File

@ -1880,7 +1880,7 @@ const char *prettify_refname(const char *name)
0); 0);
} }
const char *ref_rev_parse_rules[] = { static const char *ref_rev_parse_rules[] = {
"%.*s", "%.*s",
"refs/%.*s", "refs/%.*s",
"refs/tags/%.*s", "refs/tags/%.*s",
@ -1890,12 +1890,12 @@ const char *ref_rev_parse_rules[] = {
NULL NULL
}; };
int refname_match(const char *abbrev_name, const char *full_name, const char **rules) int refname_match(const char *abbrev_name, const char *full_name)
{ {
const char **p; const char **p;
const int abbrev_name_len = strlen(abbrev_name); const int abbrev_name_len = strlen(abbrev_name);
for (p = rules; *p; p++) { for (p = ref_rev_parse_rules; *p; p++) {
if (!strcmp(full_name, mkpath(*p, abbrev_name_len, abbrev_name))) { if (!strcmp(full_name, mkpath(*p, abbrev_name_len, abbrev_name))) {
return 1; return 1;
} }

View File

@ -1000,7 +1000,7 @@ int count_refspec_match(const char *pattern,
char *name = refs->name; char *name = refs->name;
int namelen = strlen(name); int namelen = strlen(name);
if (!refname_match(pattern, name, ref_rev_parse_rules)) if (!refname_match(pattern, name))
continue; continue;
/* A match is "weak" if it is with refs outside /* A match is "weak" if it is with refs outside
@ -1571,7 +1571,7 @@ int branch_merge_matches(struct branch *branch,
{ {
if (!branch || i < 0 || i >= branch->merge_nr) if (!branch || i < 0 || i >= branch->merge_nr)
return 0; return 0;
return refname_match(branch->merge[i]->src, refname, ref_fetch_rules); return refname_match(branch->merge[i]->src, refname);
} }
static int ignore_symref_update(const char *refname) static int ignore_symref_update(const char *refname)
@ -1624,7 +1624,7 @@ static const struct ref *find_ref_by_name_abbrev(const struct ref *refs, const c
{ {
const struct ref *ref; const struct ref *ref;
for (ref = refs; ref; ref = ref->next) { for (ref = refs; ref; ref = ref->next) {
if (refname_match(name, ref->name, ref_fetch_rules)) if (refname_match(name, ref->name))
return ref; return ref;
} }
return NULL; return NULL;
@ -2121,7 +2121,7 @@ static void apply_cas(struct push_cas_option *cas,
/* Find an explicit --<option>=<name>[:<value>] entry */ /* Find an explicit --<option>=<name>[:<value>] entry */
for (i = 0; i < cas->nr; i++) { for (i = 0; i < cas->nr; i++) {
struct push_cas *entry = &cas->entry[i]; struct push_cas *entry = &cas->entry[i];
if (!refname_match(entry->refname, ref->name, ref_rev_parse_rules)) if (!refname_match(entry->refname, ref->name))
continue; continue;
ref->expect_old_sha1 = 1; ref->expect_old_sha1 = 1;
if (!entry->use_tracking) if (!entry->use_tracking)