David Turner <dturner@xxxxxxxxxxxxxxxx> writes: > +[[def_pseudoref]]pseudoref:: > + Files under `$GIT_DIR` whose names are all-caps, and that > + contain a line consisting of a <<def_sha1,SHA-1>> followed by > + a newline, and optionally some additional data. `MERGE_HEAD` > + and `CHERRY_PICK_HEAD` are examples. Unlike... I wonder if you meant to include FETCH_HEAD in this category (I am not complaining about not having it listed as an example). If you did mean to include FETCH_HEAD, then "followed-by a newline" must be rethought. Documentation pedant might say that the above definition would throw HEAD into this category. s/all-caps,/all-caps (except "HEAD"),/ or something like that may be needed to prevent them from making useless noise. > diff --git a/refs.c b/refs.c > index 0b96ece..d31ca42 100644 > --- a/refs.c > +++ b/refs.c > @@ -3857,6 +3857,29 @@ void ref_transaction_free(struct ref_transaction *transaction) > free(transaction); > } > > +int is_per_worktree_ref(const char *refname) > +{ > + return !strcmp(refname, "HEAD"); > +} > + > +static int is_pseudoref(const char *refname) > +{ > + const char *c; > + > + if (strchr(refname, '/')) > + return 0; > + > + if (is_per_worktree_ref(refname)) > + return 0; > + > + for (c = refname; *c; ++c) { > + if (!isupper(*c) && *c != '-' && *c != '_') > + return 0; > + } > + > + return 1; > +} > + > static struct ref_update *add_update(struct ref_transaction *transaction, > const char *refname) > { > diff --git a/refs.h b/refs.h > index e4e46c3..bd5526e 100644 > --- a/refs.h > +++ b/refs.h > @@ -445,6 +445,8 @@ extern int parse_hide_refs_config(const char *var, const char *value, const char > > extern int ref_is_hidden(const char *); > > +int is_per_worktree_ref(const char *refname); > + > enum expire_reflog_flags { > EXPIRE_REFLOGS_DRY_RUN = 1 << 0, > EXPIRE_REFLOGS_UPDATE_REF = 1 << 1, -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html