Jeff King <peff@xxxxxxxx> writes: > +enum log_refs_config { > + LOG_REFS_UNSET = -1, > + LOG_REFS_NONE = 0, > + LOG_REFS_NORMAL, /* see should_create_reflog for rules */ > + LOG_REFS_ALWAYS > +}; > +extern enum log_refs_config log_all_ref_updates; > +... > +int should_create_reflog(const char *refname) > +{ > + switch (log_all_ref_updates) { > + case LOG_REFS_ALWAYS: > + return 1; > + case LOG_REFS_NORMAL: > + return !prefixcmp(refname, "refs/heads/") || > + !prefixcmp(refname, "refs/remotes/") || > + !prefixcmp(refname, "refs/notes/") || > + !strcmp(refname, "HEAD"); > + default: > + return 0; > + } > +} Yup, this is how I expected for the feature to be done. Just a hint for Cornelius; prefixcmp() is an old name for what is called starts_with() these days.