True. And c does not have to be a single byte. ".." can also be
part of the repertoire.
Agreed and updated accordingly: forbidden chars are looped over,
and I folded ".." in along with "\" (the same forbidden-char list).
The other refname rules enforced by refs.c are well covered,
so I kept the loop to the embedded forbidden tokens.
By the way, one weird bit: is it intentional that all of these really
use "heads/something" instead of "refs/heads/something"?
Not intentional -- the file already mixes them (e.g. 'refs/heads/foo.'
vs 'heads/foo..bar'). check-ref-format validates each component
regardless of a refs/ prefix, so it doesn't change what's tested; I
kept 'heads/' to match the neighbours.
Thanks,
Nikolaus