Change check_ref_format() to take a flags argument
Change check_ref_format() to take a flags argument that indicates what is acceptable in the reference name (analogous to "git check-ref-format"'s "--allow-onelevel" and "--refspec-pattern"). This is more convenient for callers and also fixes a failure in the test suite (and likely elsewhere in the code) by enabling "onelevel" and "refspec-pattern" to be allowed independently of each other. Also rename check_ref_format() to check_refname_format() to make it obvious that it deals with refnames rather than references themselves. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
9224b73be0
commit
8d9c50105f
@ -53,9 +53,6 @@ static void refname_format_print(const char *arg)
|
||||
printf("%s\n", refname);
|
||||
}
|
||||
|
||||
#define REFNAME_ALLOW_ONELEVEL 1
|
||||
#define REFNAME_REFSPEC_PATTERN 2
|
||||
|
||||
int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
|
||||
{
|
||||
int i;
|
||||
@ -83,24 +80,8 @@ int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
|
||||
if (! (i == argc - 1))
|
||||
usage(builtin_check_ref_format_usage);
|
||||
|
||||
switch (check_ref_format(argv[i])) {
|
||||
case CHECK_REF_FORMAT_OK:
|
||||
break;
|
||||
case CHECK_REF_FORMAT_ERROR:
|
||||
if (check_refname_format(argv[i], flags))
|
||||
return 1;
|
||||
case CHECK_REF_FORMAT_ONELEVEL:
|
||||
if (!(flags & REFNAME_ALLOW_ONELEVEL))
|
||||
return 1;
|
||||
else
|
||||
break;
|
||||
case CHECK_REF_FORMAT_WILDCARD:
|
||||
if (!(flags & REFNAME_REFSPEC_PATTERN))
|
||||
return 1;
|
||||
else
|
||||
break;
|
||||
default:
|
||||
die("internal error: unexpected value from check_ref_format()");
|
||||
}
|
||||
|
||||
if (print)
|
||||
refname_format_print(argv[i]);
|
||||
|
Reference in New Issue
Block a user