grokmirror <https://github.com/mricon/grokmirror> uses output from
"git show-ref | sha1sum" as a caching key to decide whether mirrors
need to be updated. That has two problems:
1. The default pattern used by show-ref doesn't include HEAD, so if
HEAD moves without any other branches being updated, grokmirror
thinks the repository is unchanged.
This could be fixed on the grokmirror side by passing --head to
show-ref.
2. Even with --head, show-ref just lists the object pointed to by each
ref. If HEAD switches from one branch to another but both branches
have the same tip commit, grokmirror won't notice.
If show-ref had an option to show symrefs as-is instead of resolving
them, that could be used to solve (2).