Since 993d57eded (refs: pseudorefs are no refs, 2024-05-15), "pseudoref" has meant only FETCH_HEAD and MERGE_HEAD, which are not stored in the ref backends. Other refs outside "refs/", such as HEAD and ORIG_HEAD, are called root refs. Andy Koppe notes that many docs, comments, messages and tests still use the old sense. The glossary also never defines "root ref", though "git for-each-ref --include-root-refs" uses the term.

The five-patch series adds a glossary entry for root refs and clarifies the pseudoref entry. It then replaces the outdated uses. In tests, it renames the root refs created in t1400 and t4013 from PSEUDOREF to ROOT_REF_HEAD and from REVERSE to REVERSE_HEAD to follow the root-ref naming rules, and it corrects tests that called FETCH_HEAD and MERGE_HEAD "special refs". Manual pages are updated too. git-worktree(1) now says both root refs and pseudorefs are per-worktree and no longer describes them as directly under $GIT_DIR, since that does not hold for the reftable backend. git-ls-remote(1) now describes --refs as omitting refs outside "refs/".

In code, the bash completion function __git_pseudoref_exists() is deliberately not renamed. Koppe says there is no obvious term covering both root refs and pseudorefs, and third-party completion scripts might depend on the name.

Koppe's replies indicate that reviewers asked for several changes, and v2 adopts them. One dropped item was accepted as fair. He added git-log and git-diff as examples of where pseudorefs can be used like references, and wrote a clearer description of how pseudorefs differ from refs. On per-worktree refs, he wanted pseudorefs mentioned there without calling them refs, noting they are per-worktree but not refs.

A reviewer pointed out that the LOGGING UPDATES section of git-update-ref(1) seems outdated, assuming ref files and SHA-256. Koppe said that is out of scope for this series.