Skip to main content

max / makenotwork

server: put the notes refspec on the Notes tab Half of why notes are unusable everywhere else is that no clone fetches them and git offers no way to change that default. The incantation is one line and nobody knows it, so the Notes tab prints it. The plan said the repo page. The tab is the better place: a refspec in the clone box of every repository would be noise for the many that have no notes, and somebody wondering why a fresh clone shows nothing is already standing here. Shown whether or not the repository has any notes, since arriving after a clone that fetched nothing is exactly the confusing case. Static copy, so no handler changes and nothing to keep in sync.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-08 21:30 UTC
Signed with PGP, not checked
Commit: e802dcf26e1979b2fe90a17d22a588e5c72babbb
Parent: f3e4f09
2 files changed, +12 insertions, -0 deletions
@@ -7196,6 +7196,8 @@
7196 7196 .git-note-namespaces a:hover { opacity: 1; }
7197 7197 .git-note-namespaces a.is-selected { opacity: 1; text-decoration: underline; }
7198 7198 .git-note-target-kind { opacity: 0.6; }
7199 + .git-notes-fetch { padding-bottom: var(--gap-section); font-size: var(--text-note); }
7200 + .git-notes-fetch p { margin: 0 0 var(--gap-peer); }
7199 7201 .git-note-feed-cap { font-size: var(--text-fine); opacity: 0.6; padding-top: var(--gap-section); }
7200 7202 .git-note-badge {
7201 7203 font-size: var(--text-fine);
@@ -15,6 +15,16 @@
15 15
16 16 {% include "partials/git_nav.html" %}
17 17
18 + {# The reason notes are unusable everywhere else: no clone fetches them, and
19 + git offers no way to change that default. The incantation is short and
20 + nobody knows it, so it goes where somebody looking at notes will be
21 + standing. Shown whether or not this repository has any, since arriving
22 + here after a clone that fetched nothing is exactly the confusing case. #}
23 + <div class="git-notes-fetch">
24 + <p>A clone does not fetch notes. Set the refspec once, then every <code>git fetch</code> brings them along.</p>
25 + <code class="git-clone-url">git config --add remote.origin.fetch '+refs/notes/*:refs/notes/*'</code>
26 + </div>
27 +
18 28 {% if namespaces.is_empty() %}
19 29 {% call ui::empty_state("", "No notes in this repository. Notes are git objects on refs/notes/*; push them with git push origin refs/notes/*.") %}{% endcall %}
20 30 {% else %}