зеркало из https://github.com/microsoft/git.git
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:
Коммит
9bb5287098
9
cache.h
9
cache.h
|
@ -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
6
refs.c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
8
remote.c
8
remote.c
|
@ -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)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче