Signed-off-by: Ian Jackson <ijackson@xxxxxxxxxxxxxxxxxxxxxx> --- Documentation/git-check-ref-format.txt | 8 ++++++-- builtin/check-ref-format.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt index 8611a99..e9a2657 100644 --- a/Documentation/git-check-ref-format.txt +++ b/Documentation/git-check-ref-format.txt @@ -8,10 +8,10 @@ git-check-ref-format - Ensures that a reference name is well formed SYNOPSIS -------- [verse] -'git check-ref-format' [--normalize] +'git check-ref-format' [--report-errors] [--normalize] [--[no-]allow-onelevel] [--refspec-pattern] <refname> -'git check-ref-format' --branch <branchname-shorthand> +'git check-ref-format' [--report-errors] --branch <branchname-shorthand> DESCRIPTION ----------- @@ -105,6 +105,10 @@ OPTIONS with a status of 0. (`--print` is a deprecated way to spell `--normalize`.) +--report-errors:: + If any ref does not check OK, print a message to stderr. + (By default, git check-ref-format is silent.) + EXAMPLES -------- diff --git a/builtin/check-ref-format.c b/builtin/check-ref-format.c index 020ebe8..559d5c2 100644 --- a/builtin/check-ref-format.c +++ b/builtin/check-ref-format.c @@ -9,7 +9,7 @@ static const char builtin_check_ref_format_usage[] = "git check-ref-format [--normalize] [<options>] <refname>\n" -" or: git check-ref-format --branch <branchname-shorthand>"; +" or: git check-ref-format [<options>] --branch <branchname-shorthand>"; /* * Return a copy of refname but with leading slashes removed and runs @@ -51,6 +51,7 @@ static int check_ref_format_branch(const char *arg) static int normalize = 0; static int check_branch = 0; static int flags = 0; +static int report_errors = 0; static int check_one_ref_format(const char *refname) { @@ -61,8 +62,11 @@ static int check_one_ref_format(const char *refname) got = check_branch ? check_ref_format_branch(refname) : check_refname_format(refname, flags); - if (got) + if (got) { + if (report_errors) + fprintf(stderr, "bad ref format: %s\n", refname); return 1; + } if (normalize) { printf("%s\n", refname); free((void*)refname); @@ -87,6 +91,8 @@ int cmd_check_ref_format(int argc, const char **argv, const char *prefix) flags |= REFNAME_REFSPEC_PATTERN; else if (!strcmp(argv[i], "--branch")) check_branch = 1; + else if (!strcmp(argv[i], "--report-errors")) + report_errors = 1; else usage(builtin_check_ref_format_usage); } -- 2.10.1