--- /dev/null
+From d64db36be81b970bfc9f9d7bae854819e267d6a0 Mon Sep 17 00:00:00 2001
+From: Ian Jackson <ijackson@chiark.greenend.org.uk>
+Date: Fri, 4 Nov 2016 17:23:42 +0000
+Subject: [PATCH 1/5] check-ref-format: Refactor out check_one_ref_format
+
+We are going to want to reuse this. No functional change right now.
+
+It currently has a hidden memory leak if --normalize is used.
+
+Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
+---
+ builtin/check-ref-format.c | 26 ++++++++++++++------------
+ 1 file changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/builtin/check-ref-format.c b/builtin/check-ref-format.c
+index eac4994..4d56caa 100644
+--- a/builtin/check-ref-format.c
++++ b/builtin/check-ref-format.c
+@@ -48,12 +48,22 @@ static int check_ref_format_branch(const char *arg)
+ return 0;
+ }
+
++static int normalize = 0;
++static int flags = 0;
++
++static int check_one_ref_format(const char *refname)
++{
++ if (normalize)
++ refname = collapse_slashes(refname);
++ if (check_refname_format(refname, flags))
++ return 1;
++ if (normalize)
++ printf("%s\n", refname);
++}
++
+ int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
+ {
+ int i;
+- int normalize = 0;
+- int flags = 0;
+- const char *refname;
+
+ if (argc == 2 && !strcmp(argv[1], "-h"))
+ usage(builtin_check_ref_format_usage);
+@@ -76,13 +86,5 @@ int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
+ if (! (i == argc - 1))
+ usage(builtin_check_ref_format_usage);
+
+- refname = argv[i];
+- if (normalize)
+- refname = collapse_slashes(refname);
+- if (check_refname_format(refname, flags))
+- return 1;
+- if (normalize)
+- printf("%s\n", refname);
+-
+- return 0;
++ return check_one_ref_format(argv[i]);
+ }
+--
+2.10.1
+