refs: break out check for reflog autocreation
[git/git.git] / refs.c
diff --git a/refs.c b/refs.c
index 65c32ae..f5dbf01 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -3053,6 +3053,16 @@ static int copy_msg(char *buf, const char *msg)
        return cp - buf;
 }
 
+static int should_autocreate_reflog(const char *refname)
+{
+       if (!log_all_ref_updates)
+               return 0;
+       return starts_with(refname, "refs/heads/") ||
+               starts_with(refname, "refs/remotes/") ||
+               starts_with(refname, "refs/notes/") ||
+               !strcmp(refname, "HEAD");
+}
+
 /* This function will fill in *err and return -1 on failure */
 int log_ref_setup(const char *refname, struct strbuf *sb_logfile, struct strbuf *err)
 {
@@ -3063,11 +3073,7 @@ int log_ref_setup(const char *refname, struct strbuf *sb_logfile, struct strbuf
        logfile = sb_logfile->buf;
        /* make sure the rest of the function can't change "logfile" */
        sb_logfile = NULL;
-       if (log_all_ref_updates &&
-           (starts_with(refname, "refs/heads/") ||
-            starts_with(refname, "refs/remotes/") ||
-            starts_with(refname, "refs/notes/") ||
-            !strcmp(refname, "HEAD"))) {
+       if (should_autocreate_reflog(refname)) {
                if (safe_create_leading_directories(logfile) < 0) {
                        strbuf_addf(err, "unable to create directory for %s: "
                                    "%s", logfile, strerror(errno));