chiark / gitweb /
use new git-check-ref-format
[version-charset-test.git] / 0004-check-ref-format-New-report-errors-option.patch
diff --git a/0004-check-ref-format-New-report-errors-option.patch b/0004-check-ref-format-New-report-errors-option.patch
new file mode 100644 (file)
index 0000000..c85ad38
--- /dev/null
@@ -0,0 +1,85 @@
+From 5f0a31143d8e1c3740e81ad948c8ae670a322dcc Mon Sep 17 00:00:00 2001
+From: Ian Jackson <ijackson@chiark.greenend.org.uk>
+Date: Fri, 4 Nov 2016 17:40:49 +0000
+Subject: [PATCH 4/5] check-ref-format: New --report-errors option
+
+Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
+---
+ 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
+