detached 973e682

commits-root.html RawHistoryFolder

1<!doctype html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<meta name="viewport" content="width=device-width, initial-scale=1">
6<meta name="color-scheme" content="light dark">
7<title>commits · long · example.test</title>
8<meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff">
9<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0c0c0c">
10<meta name="apple-mobile-web-app-title" content="ermite">
11<link rel="icon" type="image/svg+xml" href="/-/static/img/icon.HASH.svg">
12<link rel="apple-touch-icon" href="/-/static/app/apple-touch-icon.HASH.png">
13<link rel="manifest" href="/-/static/app/manifest.HASH.webmanifest">
14<link rel="preload" href="/-/static/fonts/atkinson-next.HASH.woff2" as="font" type="font/woff2" crossorigin>
15<link rel="stylesheet" href="/-/static/css/ermite.HASH.css">
16<meta name="htmx-config" content='{"history":false,"includeIndicatorCSS":false,"extensions":"sse, hx-live"}'>
17<script src="/-/static/js/htmx.min.HASH.js" defer>
18</script>
19<script src="/-/static/js/hx-live.min.HASH.js" defer>
20</script>
21<script src="/-/static/js/hx-sse.min.HASH.js" defer>
22</script>
23<script src="/-/static/js/store.HASH.js">
24</script>
25<script src="/-/static/js/ermite.HASH.js" defer>
26</script>
27<script src="/-/static/js/files.HASH.js" defer>
28</script>
29<script src="/-/static/js/passkey.HASH.js" defer>
30</script>
31<script src="/-/static/js/log.HASH.js" defer>
32</script>
33</head>
34<body data-ref="main" data-sha="SHA40" data-sel="" data-nav="" data-paths="/long/paths/SHA40" data-blob="/long/blob/main">
35<a class="skip" href="#main">skip to content</a>
36<header class="hdr">
37<div class="hdr-top">
38<a class="brand" href="/" data-g="h" aria-label="home" title="home (g h)">
39<span class="brand-mark" aria-hidden="true">
40</span>
41</a>
42<nav class="crumbs" aria-label="Path">
43<ol>
44<li>
45<a href="/long">long</a>
46</li>
47<li>
48<a href="/long/commits/main">commits</a>
49</li>
50<li>
51<a href="/long/commits/main" aria-current="page">main</a>
52</li>
53</ol>
54</nav>
55<div class="hdr-acts">
56<a class="btn ref" href="/long/refs" data-fire="refs" aria-keyshortcuts="b" title="switch branch or tag (b)">
57<span class="ico i-branch" aria-hidden="true">
58</span>
59<span class="ref-name">main</span>
60<span class="sha">SHA7</span>
61</a>
62<button type="button" class="btn search" data-js aria-haspopup="dialog" aria-controls="panel-cmd" aria-keyshortcuts="Control+K :" title="go to a section, ref, file or repo (ctrl k or :)" data-fire="cmd">
63<span class="ico i-search" aria-hidden="true">
64</span>
65<span class="search-label">Go to…</span>
66<kbd aria-hidden="true">ctrl k</kbd>
67</button>
68</div>
69</div>
70<nav class="tabs" aria-label="Sections">
71<ul>
72<li>
73<a href="/long" data-key="s" aria-keyshortcuts="s">Summary <kbd aria-hidden="true">s</kbd>
74</a>
75</li>
76<li>
77<a href="/long/tree/main" data-key="t" aria-keyshortcuts="t">Files <kbd aria-hidden="true">t</kbd>
78</a>
79</li>
80<li>
81<a href="/long/commits/main" data-key="c" aria-keyshortcuts="c" aria-current="page">Commits <kbd aria-hidden="true">c</kbd>
82</a>
83</li>
84<li>
85<a href="/long/refs" data-key="r" aria-keyshortcuts="r">Branches &amp; tags <kbd aria-hidden="true">r</kbd>
86</a>
87</li>
88<li>
89<a href="/long/merge-requests" data-key="m" aria-keyshortcuts="m">Merge requests <kbd aria-hidden="true">m</kbd>
90</a>
91</li>
92<li>
93<a href="/long/actions" data-key="a" aria-keyshortcuts="a">Actions <kbd aria-hidden="true">a</kbd>
94</a>
95</li>
96</ul>
97</nav>
98</header>
99<div class="work has-rail">
100<main id="main" tabindex="-1">
101<div class="filter">
102<label for="commit-filter" class="sr">filter</label>
103<input id="commit-filter" type="search" data-filter=".days tr" data-groups=".days section" placeholder="Filter by subject, sha or author…" autocomplete="off" hx-on:input="ermite.filter(this)">
104</div>
105<div id="commits-head" class="live-slot" role="status" data-slot>
106</div>
107<div class="days">
108<section aria-label="2026-03-26">
109<h2 class="rule-h">
110<span>2026-03-26</span>
111</h2>
112<table class="list commits" aria-label="Commits">
113<tbody data-rows>
114<tr id="c-SHA7" data-cursor>
115<td class="c-sha mute">SHA7</td>
116<td class="c-subject">
117<a href="/long/commit/SHA40">commit number 51</a>
118<span class="pill">main</span>
119</td>
120<td class="c-ck">
121</td>
122<td class="c-who dim">T</td>
123<td class="c-when nowrap dim">
124<time datetime="STAMP" title="STAMP">AGO</time>
125</td>
126</tr>
127<tr id="c-SHA7">
128<td class="c-sha mute">SHA7</td>
129<td class="c-subject">
130<a href="/long/commit/SHA40">commit number 50</a>
131</td>
132<td class="c-ck">
133</td>
134<td class="c-who dim">T</td>
135<td class="c-when nowrap dim">
136<time datetime="STAMP" title="STAMP">AGO</time>
137</td>
138</tr>
139</tbody>
140</table>
141</section>
142<section aria-label="2026-03-25">
143<h2 class="rule-h">
144<span>2026-03-25</span>
145</h2>
146<table class="list commits" aria-label="Commits">
147<tbody data-rows>
148<tr id="c-SHA7">
149<td class="c-sha mute">SHA7</td>
150<td class="c-subject">
151<a href="/long/commit/SHA40">commit number 49</a>
152</td>
153<td class="c-ck">
154</td>
155<td class="c-who dim">T</td>
156<td class="c-when nowrap dim">
157<time datetime="STAMP" title="STAMP">AGO</time>
158</td>
159</tr>
160<tr id="c-SHA7">
161<td class="c-sha mute">SHA7</td>
162<td class="c-subject">
163<a href="/long/commit/SHA40">commit number 48</a>
164</td>
165<td class="c-ck">
166</td>
167<td class="c-who dim">T</td>
168<td class="c-when nowrap dim">
169<time datetime="STAMP" title="STAMP">AGO</time>
170</td>
171</tr>
172</tbody>
173</table>
174</section>
175<section aria-label="2026-03-24">
176<h2 class="rule-h">
177<span>2026-03-24</span>
178</h2>
179<table class="list commits" aria-label="Commits">
180<tbody data-rows>
181<tr id="c-SHA7">
182<td class="c-sha mute">SHA7</td>
183<td class="c-subject">
184<a href="/long/commit/SHA40">commit number 47</a>
185</td>
186<td class="c-ck">
187</td>
188<td class="c-who dim">T</td>
189<td class="c-when nowrap dim">
190<time datetime="STAMP" title="STAMP">AGO</time>
191</td>
192</tr>
193<tr id="c-SHA7">
194<td class="c-sha mute">SHA7</td>
195<td class="c-subject">
196<a href="/long/commit/SHA40">commit number 46</a>
197</td>
198<td class="c-ck">
199</td>
200<td class="c-who dim">T</td>
201<td class="c-when nowrap dim">
202<time datetime="STAMP" title="STAMP">AGO</time>
203</td>
204</tr>
205</tbody>
206</table>
207</section>
208<section aria-label="2026-03-23">
209<h2 class="rule-h">
210<span>2026-03-23</span>
211</h2>
212<table class="list commits" aria-label="Commits">
213<tbody data-rows>
214<tr id="c-SHA7">
215<td class="c-sha mute">SHA7</td>
216<td class="c-subject">
217<a href="/long/commit/SHA40">commit number 45</a>
218</td>
219<td class="c-ck">
220</td>
221<td class="c-who dim">T</td>
222<td class="c-when nowrap dim">
223<time datetime="STAMP" title="STAMP">AGO</time>
224</td>
225</tr>
226<tr id="c-SHA7">
227<td class="c-sha mute">SHA7</td>
228<td class="c-subject">
229<a href="/long/commit/SHA40">commit number 44</a>
230</td>
231<td class="c-ck">
232</td>
233<td class="c-who dim">T</td>
234<td class="c-when nowrap dim">
235<time datetime="STAMP" title="STAMP">AGO</time>
236</td>
237</tr>
238</tbody>
239</table>
240</section>
241<section aria-label="2026-03-22">
242<h2 class="rule-h">
243<span>2026-03-22</span>
244</h2>
245<table class="list commits" aria-label="Commits">
246<tbody data-rows>
247<tr id="c-SHA7">
248<td class="c-sha mute">SHA7</td>
249<td class="c-subject">
250<a href="/long/commit/SHA40">commit number 43</a>
251</td>
252<td class="c-ck">
253</td>
254<td class="c-who dim">T</td>
255<td class="c-when nowrap dim">
256<time datetime="STAMP" title="STAMP">AGO</time>
257</td>
258</tr>
259<tr id="c-SHA7">
260<td class="c-sha mute">SHA7</td>
261<td class="c-subject">
262<a href="/long/commit/SHA40">commit number 42</a>
263</td>
264<td class="c-ck">
265</td>
266<td class="c-who dim">T</td>
267<td class="c-when nowrap dim">
268<time datetime="STAMP" title="STAMP">AGO</time>
269</td>
270</tr>
271</tbody>
272</table>
273</section>
274<section aria-label="2026-03-21">
275<h2 class="rule-h">
276<span>2026-03-21</span>
277</h2>
278<table class="list commits" aria-label="Commits">
279<tbody data-rows>
280<tr id="c-SHA7">
281<td class="c-sha mute">SHA7</td>
282<td class="c-subject">
283<a href="/long/commit/SHA40">commit number 41</a>
284</td>
285<td class="c-ck">
286</td>
287<td class="c-who dim">T</td>
288<td class="c-when nowrap dim">
289<time datetime="STAMP" title="STAMP">AGO</time>
290</td>
291</tr>
292<tr id="c-SHA7">
293<td class="c-sha mute">SHA7</td>
294<td class="c-subject">
295<a href="/long/commit/SHA40">commit number 40</a>
296</td>
297<td class="c-ck">
298</td>
299<td class="c-who dim">T</td>
300<td class="c-when nowrap dim">
301<time datetime="STAMP" title="STAMP">AGO</time>
302</td>
303</tr>
304</tbody>
305</table>
306</section>
307<section aria-label="2026-03-20">
308<h2 class="rule-h">
309<span>2026-03-20</span>
310</h2>
311<table class="list commits" aria-label="Commits">
312<tbody data-rows>
313<tr id="c-SHA7">
314<td class="c-sha mute">SHA7</td>
315<td class="c-subject">
316<a href="/long/commit/SHA40">commit number 39</a>
317</td>
318<td class="c-ck">
319</td>
320<td class="c-who dim">T</td>
321<td class="c-when nowrap dim">
322<time datetime="STAMP" title="STAMP">AGO</time>
323</td>
324</tr>
325<tr id="c-SHA7">
326<td class="c-sha mute">SHA7</td>
327<td class="c-subject">
328<a href="/long/commit/SHA40">commit number 38</a>
329</td>
330<td class="c-ck">
331</td>
332<td class="c-who dim">T</td>
333<td class="c-when nowrap dim">
334<time datetime="STAMP" title="STAMP">AGO</time>
335</td>
336</tr>
337</tbody>
338</table>
339</section>
340<section aria-label="2026-03-19">
341<h2 class="rule-h">
342<span>2026-03-19</span>
343</h2>
344<table class="list commits" aria-label="Commits">
345<tbody data-rows>
346<tr id="c-SHA7">
347<td class="c-sha mute">SHA7</td>
348<td class="c-subject">
349<a href="/long/commit/SHA40">commit number 37</a>
350</td>
351<td class="c-ck">
352</td>
353<td class="c-who dim">T</td>
354<td class="c-when nowrap dim">
355<time datetime="STAMP" title="STAMP">AGO</time>
356</td>
357</tr>
358<tr id="c-SHA7">
359<td class="c-sha mute">SHA7</td>
360<td class="c-subject">
361<a href="/long/commit/SHA40">commit number 36</a>
362</td>
363<td class="c-ck">
364</td>
365<td class="c-who dim">T</td>
366<td class="c-when nowrap dim">
367<time datetime="STAMP" title="STAMP">AGO</time>
368</td>
369</tr>
370</tbody>
371</table>
372</section>
373<section aria-label="2026-03-18">
374<h2 class="rule-h">
375<span>2026-03-18</span>
376</h2>
377<table class="list commits" aria-label="Commits">
378<tbody data-rows>
379<tr id="c-SHA7">
380<td class="c-sha mute">SHA7</td>
381<td class="c-subject">
382<a href="/long/commit/SHA40">commit number 35</a>
383</td>
384<td class="c-ck">
385</td>
386<td class="c-who dim">T</td>
387<td class="c-when nowrap dim">
388<time datetime="STAMP" title="STAMP">AGO</time>
389</td>
390</tr>
391<tr id="c-SHA7">
392<td class="c-sha mute">SHA7</td>
393<td class="c-subject">
394<a href="/long/commit/SHA40">commit number 34</a>
395</td>
396<td class="c-ck">
397</td>
398<td class="c-who dim">T</td>
399<td class="c-when nowrap dim">
400<time datetime="STAMP" title="STAMP">AGO</time>
401</td>
402</tr>
403</tbody>
404</table>
405</section>
406<section aria-label="2026-03-17">
407<h2 class="rule-h">
408<span>2026-03-17</span>
409</h2>
410<table class="list commits" aria-label="Commits">
411<tbody data-rows>
412<tr id="c-SHA7">
413<td class="c-sha mute">SHA7</td>
414<td class="c-subject">
415<a href="/long/commit/SHA40">commit number 33</a>
416</td>
417<td class="c-ck">
418</td>
419<td class="c-who dim">T</td>
420<td class="c-when nowrap dim">
421<time datetime="STAMP" title="STAMP">AGO</time>
422</td>
423</tr>
424<tr id="c-SHA7">
425<td class="c-sha mute">SHA7</td>
426<td class="c-subject">
427<a href="/long/commit/SHA40">commit number 32</a>
428</td>
429<td class="c-ck">
430</td>
431<td class="c-who dim">T</td>
432<td class="c-when nowrap dim">
433<time datetime="STAMP" title="STAMP">AGO</time>
434</td>
435</tr>
436</tbody>
437</table>
438</section>
439<section aria-label="2026-03-16">
440<h2 class="rule-h">
441<span>2026-03-16</span>
442</h2>
443<table class="list commits" aria-label="Commits">
444<tbody data-rows>
445<tr id="c-SHA7">
446<td class="c-sha mute">SHA7</td>
447<td class="c-subject">
448<a href="/long/commit/SHA40">commit number 31</a>
449</td>
450<td class="c-ck">
451</td>
452<td class="c-who dim">T</td>
453<td class="c-when nowrap dim">
454<time datetime="STAMP" title="STAMP">AGO</time>
455</td>
456</tr>
457<tr id="c-SHA7">
458<td class="c-sha mute">SHA7</td>
459<td class="c-subject">
460<a href="/long/commit/SHA40">commit number 30</a>
461</td>
462<td class="c-ck">
463</td>
464<td class="c-who dim">T</td>
465<td class="c-when nowrap dim">
466<time datetime="STAMP" title="STAMP">AGO</time>
467</td>
468</tr>
469</tbody>
470</table>
471</section>
472<section aria-label="2026-03-15">
473<h2 class="rule-h">
474<span>2026-03-15</span>
475</h2>
476<table class="list commits" aria-label="Commits">
477<tbody data-rows>
478<tr id="c-SHA7">
479<td class="c-sha mute">SHA7</td>
480<td class="c-subject">
481<a href="/long/commit/SHA40">commit number 29</a>
482</td>
483<td class="c-ck">
484</td>
485<td class="c-who dim">T</td>
486<td class="c-when nowrap dim">
487<time datetime="STAMP" title="STAMP">AGO</time>
488</td>
489</tr>
490<tr id="c-SHA7">
491<td class="c-sha mute">SHA7</td>
492<td class="c-subject">
493<a href="/long/commit/SHA40">commit number 28</a>
494</td>
495<td class="c-ck">
496</td>
497<td class="c-who dim">T</td>
498<td class="c-when nowrap dim">
499<time datetime="STAMP" title="STAMP">AGO</time>
500</td>
501</tr>
502</tbody>
503</table>
504</section>
505<section aria-label="2026-03-14">
506<h2 class="rule-h">
507<span>2026-03-14</span>
508</h2>
509<table class="list commits" aria-label="Commits">
510<tbody data-rows>
511<tr id="c-SHA7">
512<td class="c-sha mute">SHA7</td>
513<td class="c-subject">
514<a href="/long/commit/SHA40">commit number 27</a>
515</td>
516<td class="c-ck">
517</td>
518<td class="c-who dim">T</td>
519<td class="c-when nowrap dim">
520<time datetime="STAMP" title="STAMP">AGO</time>
521</td>
522</tr>
523<tr id="c-SHA7">
524<td class="c-sha mute">SHA7</td>
525<td class="c-subject">
526<a href="/long/commit/SHA40">commit number 26</a>
527</td>
528<td class="c-ck">
529</td>
530<td class="c-who dim">T</td>
531<td class="c-when nowrap dim">
532<time datetime="STAMP" title="STAMP">AGO</time>
533</td>
534</tr>
535</tbody>
536</table>
537</section>
538<section aria-label="2026-03-13">
539<h2 class="rule-h">
540<span>2026-03-13</span>
541</h2>
542<table class="list commits" aria-label="Commits">
543<tbody data-rows>
544<tr id="c-SHA7">
545<td class="c-sha mute">SHA7</td>
546<td class="c-subject">
547<a href="/long/commit/SHA40">commit number 25</a>
548</td>
549<td class="c-ck">
550</td>
551<td class="c-who dim">T</td>
552<td class="c-when nowrap dim">
553<time datetime="STAMP" title="STAMP">AGO</time>
554</td>
555</tr>
556<tr id="c-SHA7">
557<td class="c-sha mute">SHA7</td>
558<td class="c-subject">
559<a href="/long/commit/SHA40">commit number 24</a>
560</td>
561<td class="c-ck">
562</td>
563<td class="c-who dim">T</td>
564<td class="c-when nowrap dim">
565<time datetime="STAMP" title="STAMP">AGO</time>
566</td>
567</tr>
568</tbody>
569</table>
570</section>
571<section aria-label="2026-03-12">
572<h2 class="rule-h">
573<span>2026-03-12</span>
574</h2>
575<table class="list commits" aria-label="Commits">
576<tbody data-rows>
577<tr id="c-SHA7">
578<td class="c-sha mute">SHA7</td>
579<td class="c-subject">
580<a href="/long/commit/SHA40">commit number 23</a>
581</td>
582<td class="c-ck">
583</td>
584<td class="c-who dim">T</td>
585<td class="c-when nowrap dim">
586<time datetime="STAMP" title="STAMP">AGO</time>
587</td>
588</tr>
589<tr id="c-SHA7">
590<td class="c-sha mute">SHA7</td>
591<td class="c-subject">
592<a href="/long/commit/SHA40">commit number 22</a>
593</td>
594<td class="c-ck">
595</td>
596<td class="c-who dim">T</td>
597<td class="c-when nowrap dim">
598<time datetime="STAMP" title="STAMP">AGO</time>
599</td>
600</tr>
601</tbody>
602</table>
603</section>
604<section aria-label="2026-03-11">
605<h2 class="rule-h">
606<span>2026-03-11</span>
607</h2>
608<table class="list commits" aria-label="Commits">
609<tbody data-rows>
610<tr id="c-SHA7">
611<td class="c-sha mute">SHA7</td>
612<td class="c-subject">
613<a href="/long/commit/SHA40">commit number 21</a>
614</td>
615<td class="c-ck">
616</td>
617<td class="c-who dim">T</td>
618<td class="c-when nowrap dim">
619<time datetime="STAMP" title="STAMP">AGO</time>
620</td>
621</tr>
622<tr id="c-SHA7">
623<td class="c-sha mute">SHA7</td>
624<td class="c-subject">
625<a href="/long/commit/SHA40">commit number 20</a>
626</td>
627<td class="c-ck">
628</td>
629<td class="c-who dim">T</td>
630<td class="c-when nowrap dim">
631<time datetime="STAMP" title="STAMP">AGO</time>
632</td>
633</tr>
634</tbody>
635</table>
636</section>
637<section aria-label="2026-03-10">
638<h2 class="rule-h">
639<span>2026-03-10</span>
640</h2>
641<table class="list commits" aria-label="Commits">
642<tbody data-rows>
643<tr id="c-SHA7">
644<td class="c-sha mute">SHA7</td>
645<td class="c-subject">
646<a href="/long/commit/SHA40">commit number 19</a>
647</td>
648<td class="c-ck">
649</td>
650<td class="c-who dim">T</td>
651<td class="c-when nowrap dim">
652<time datetime="STAMP" title="STAMP">AGO</time>
653</td>
654</tr>
655<tr id="c-SHA7">
656<td class="c-sha mute">SHA7</td>
657<td class="c-subject">
658<a href="/long/commit/SHA40">commit number 18</a>
659</td>
660<td class="c-ck">
661</td>
662<td class="c-who dim">T</td>
663<td class="c-when nowrap dim">
664<time datetime="STAMP" title="STAMP">AGO</time>
665</td>
666</tr>
667</tbody>
668</table>
669</section>
670<section aria-label="2026-03-09">
671<h2 class="rule-h">
672<span>2026-03-09</span>
673</h2>
674<table class="list commits" aria-label="Commits">
675<tbody data-rows>
676<tr id="c-SHA7">
677<td class="c-sha mute">SHA7</td>
678<td class="c-subject">
679<a href="/long/commit/SHA40">commit number 17</a>
680</td>
681<td class="c-ck">
682</td>
683<td class="c-who dim">T</td>
684<td class="c-when nowrap dim">
685<time datetime="STAMP" title="STAMP">AGO</time>
686</td>
687</tr>
688<tr id="c-SHA7">
689<td class="c-sha mute">SHA7</td>
690<td class="c-subject">
691<a href="/long/commit/SHA40">commit number 16</a>
692</td>
693<td class="c-ck">
694</td>
695<td class="c-who dim">T</td>
696<td class="c-when nowrap dim">
697<time datetime="STAMP" title="STAMP">AGO</time>
698</td>
699</tr>
700</tbody>
701</table>
702</section>
703<section aria-label="2026-03-08">
704<h2 class="rule-h">
705<span>2026-03-08</span>
706</h2>
707<table class="list commits" aria-label="Commits">
708<tbody data-rows>
709<tr id="c-SHA7">
710<td class="c-sha mute">SHA7</td>
711<td class="c-subject">
712<a href="/long/commit/SHA40">commit number 15</a>
713</td>
714<td class="c-ck">
715</td>
716<td class="c-who dim">T</td>
717<td class="c-when nowrap dim">
718<time datetime="STAMP" title="STAMP">AGO</time>
719</td>
720</tr>
721<tr id="c-SHA7">
722<td class="c-sha mute">SHA7</td>
723<td class="c-subject">
724<a href="/long/commit/SHA40">commit number 14</a>
725</td>
726<td class="c-ck">
727</td>
728<td class="c-who dim">T</td>
729<td class="c-when nowrap dim">
730<time datetime="STAMP" title="STAMP">AGO</time>
731</td>
732</tr>
733</tbody>
734</table>
735</section>
736<section aria-label="2026-03-07">
737<h2 class="rule-h">
738<span>2026-03-07</span>
739</h2>
740<table class="list commits" aria-label="Commits">
741<tbody data-rows>
742<tr id="c-SHA7">
743<td class="c-sha mute">SHA7</td>
744<td class="c-subject">
745<a href="/long/commit/SHA40">commit number 13</a>
746</td>
747<td class="c-ck">
748</td>
749<td class="c-who dim">T</td>
750<td class="c-when nowrap dim">
751<time datetime="STAMP" title="STAMP">AGO</time>
752</td>
753</tr>
754<tr id="c-SHA7">
755<td class="c-sha mute">SHA7</td>
756<td class="c-subject">
757<a href="/long/commit/SHA40">commit number 12</a>
758</td>
759<td class="c-ck">
760</td>
761<td class="c-who dim">T</td>
762<td class="c-when nowrap dim">
763<time datetime="STAMP" title="STAMP">AGO</time>
764</td>
765</tr>
766</tbody>
767</table>
768</section>
769<section aria-label="2026-03-06">
770<h2 class="rule-h">
771<span>2026-03-06</span>
772</h2>
773<table class="list commits" aria-label="Commits">
774<tbody data-rows>
775<tr id="c-SHA7">
776<td class="c-sha mute">SHA7</td>
777<td class="c-subject">
778<a href="/long/commit/SHA40">commit number 11</a>
779</td>
780<td class="c-ck">
781</td>
782<td class="c-who dim">T</td>
783<td class="c-when nowrap dim">
784<time datetime="STAMP" title="STAMP">AGO</time>
785</td>
786</tr>
787<tr id="c-SHA7">
788<td class="c-sha mute">SHA7</td>
789<td class="c-subject">
790<a href="/long/commit/SHA40">commit number 10</a>
791</td>
792<td class="c-ck">
793</td>
794<td class="c-who dim">T</td>
795<td class="c-when nowrap dim">
796<time datetime="STAMP" title="STAMP">AGO</time>
797</td>
798</tr>
799</tbody>
800</table>
801</section>
802<section aria-label="2026-03-05">
803<h2 class="rule-h">
804<span>2026-03-05</span>
805</h2>
806<table class="list commits" aria-label="Commits">
807<tbody data-rows>
808<tr id="c-SHA7">
809<td class="c-sha mute">SHA7</td>
810<td class="c-subject">
811<a href="/long/commit/SHA40">commit number 9</a>
812</td>
813<td class="c-ck">
814</td>
815<td class="c-who dim">T</td>
816<td class="c-when nowrap dim">
817<time datetime="STAMP" title="STAMP">AGO</time>
818</td>
819</tr>
820<tr id="c-SHA7">
821<td class="c-sha mute">SHA7</td>
822<td class="c-subject">
823<a href="/long/commit/SHA40">commit number 8</a>
824</td>
825<td class="c-ck">
826</td>
827<td class="c-who dim">T</td>
828<td class="c-when nowrap dim">
829<time datetime="STAMP" title="STAMP">AGO</time>
830</td>
831</tr>
832</tbody>
833</table>
834</section>
835<section aria-label="2026-03-04">
836<h2 class="rule-h">
837<span>2026-03-04</span>
838</h2>
839<table class="list commits" aria-label="Commits">
840<tbody data-rows>
841<tr id="c-SHA7">
842<td class="c-sha mute">SHA7</td>
843<td class="c-subject">
844<a href="/long/commit/SHA40">commit number 7</a>
845</td>
846<td class="c-ck">
847</td>
848<td class="c-who dim">T</td>
849<td class="c-when nowrap dim">
850<time datetime="STAMP" title="STAMP">AGO</time>
851</td>
852</tr>
853<tr id="c-SHA7">
854<td class="c-sha mute">SHA7</td>
855<td class="c-subject">
856<a href="/long/commit/SHA40">commit number 6</a>
857</td>
858<td class="c-ck">
859</td>
860<td class="c-who dim">T</td>
861<td class="c-when nowrap dim">
862<time datetime="STAMP" title="STAMP">AGO</time>
863</td>
864</tr>
865</tbody>
866</table>
867</section>
868<section aria-label="2026-03-03">
869<h2 class="rule-h">
870<span>2026-03-03</span>
871</h2>
872<table class="list commits" aria-label="Commits">
873<tbody data-rows>
874<tr id="c-SHA7">
875<td class="c-sha mute">SHA7</td>
876<td class="c-subject">
877<a href="/long/commit/SHA40">commit number 5</a>
878</td>
879<td class="c-ck">
880</td>
881<td class="c-who dim">T</td>
882<td class="c-when nowrap dim">
883<time datetime="STAMP" title="STAMP">AGO</time>
884</td>
885</tr>
886<tr id="c-SHA7">
887<td class="c-sha mute">SHA7</td>
888<td class="c-subject">
889<a href="/long/commit/SHA40">commit number 4</a>
890</td>
891<td class="c-ck">
892</td>
893<td class="c-who dim">T</td>
894<td class="c-when nowrap dim">
895<time datetime="STAMP" title="STAMP">AGO</time>
896</td>
897</tr>
898</tbody>
899</table>
900</section>
901<section aria-label="2026-03-02">
902<h2 class="rule-h">
903<span>2026-03-02</span>
904</h2>
905<table class="list commits" aria-label="Commits">
906<tbody data-rows>
907<tr id="c-SHA7">
908<td class="c-sha mute">SHA7</td>
909<td class="c-subject">
910<a href="/long/commit/SHA40">commit number 3</a>
911</td>
912<td class="c-ck">
913</td>
914<td class="c-who dim">T</td>
915<td class="c-when nowrap dim">
916<time datetime="STAMP" title="STAMP">AGO</time>
917</td>
918</tr>
919<tr id="c-SHA7">
920<td class="c-sha mute">SHA7</td>
921<td class="c-subject">
922<a href="/long/commit/SHA40">commit number 2</a>
923</td>
924<td class="c-ck">
925</td>
926<td class="c-who dim">T</td>
927<td class="c-when nowrap dim">
928<time datetime="STAMP" title="STAMP">AGO</time>
929</td>
930</tr>
931</tbody>
932</table>
933</section>
934</div>
935<nav class="pager" aria-label="Pages">
936<span class="btn" aria-disabled="true">← Newest</span>
937<a class="btn" href="/long/commits/main?page=YzE6MzMzZGFjMWY5YmY4MjIzMmQxOTAzNGVlZTliZmI2NzFmM2QxMWEzNDo1MDplM2IwYzQ0Mjk4ZmM" rel="next">Older →</a>
938</nav>
939</main>
940<aside class="rail" aria-label="Context">
941<section aria-labelledby="r-hist">
942<h2 id="r-hist">History</h2>
943<dl class="kv">
944<dt>ref</dt>
945<dd>main</dd>
946<dt>on page</dt>
947<dd>50</dd>
948</dl>
949</section>
950<section aria-labelledby="r-refs">
951<h2 id="r-refs">Refs on this page</h2>
952<nav class="outline" aria-label="Refs on this page">
953<a href="#c-SHA7">branch main</a>
954</nav>
955</section>
956</aside>
957</div>
958<footer class="foot">
959<span>ermite devel</span>
960<a href="http://example.test/ermite" rel="noopener" title="source of this version (AGPL-3.0-or-later)">source</a>
961<button type="button" class="foot-keys" data-js data-fire="help" aria-haspopup="dialog" aria-controls="panel-help" aria-keyshortcuts="?">
962<kbd aria-hidden="true">?</kbd> keyboard shortcuts</button>
963</footer>
964<div class="hint" role="status" aria-live="polite">
965<span class="hint-nav" :text="document.body.dataset.nav || ''">
966</span>
967<span class="hint-sel" :text="document.body.dataset.sel ? document.body.dataset.sel + ' · y permalink' : ''">
968</span>
969<span class="hint-flash" :text="document.body.dataset.flash || ''">
970</span>
971<span class="hint-live" data-state="connecting" hx-sse:connect="/-/events?topic=repo%3Along&amp;view=commits&amp;ref=main&amp;head=SHA40" hx-swap="none" :text="data.state === 'offline' ? 'live updates paused' : ''" hx-on="htmx:sse:after:connection -> ermiteLive.back();
972           htmx:sse:close, htmx:sse:error -> ermiteLive.lost();
973           htmx:sse:error -> ermiteLive.error(event.detail.status);
974           htmx:sse:before:connection -> ermiteLive.gate(event);
975           home-list, repo-last-push, refs-list, commits-head, mr-notice, mr-mergeability, ci-run, ci-job, inbox -> ermiteLive.swap(event.detail.data);
976           gap -> ermiteLive.reload()">
977</span>
978</div>
979<dialog id="panel-help" class="panel modal" aria-label="Keyboard shortcuts" hx-on:keydown="event.key === 'Escape' && (event.preventDefault(), this.close())" hx-on:click="event.target === this && this.close()">
980<div class="panel-head">
981<h2>Keyboard shortcuts</h2>
982<button type="button" class="panel-x" aria-label="Close" hx-on:click="closest('dialog').close()">
983<kbd>esc</kbd> close</button>
984</div>
985<div class="keys-pref">
986<label>
987<input type="checkbox" id="keys-off" aria-describedby="keys-note" hx-on:change="ermite.setKeysOff(this.checked)"> Turn off single-key shortcuts</label>
988<p id="keys-note" class="dim">Single-key shortcuts are on. ctrl k and esc work whatever this says.</p>
989</div>
990<dl class="keys">
991<div>
992<dt>
993<kbd>ctrl k</kbd>
994<kbd>:</kbd>
995</dt>
996<dd>go to a section, branch, tag, file or repository</dd>
997</div>
998<div>
999<dt>
1000<kbd>?</kbd>
1001</dt>
1002<dd>this list</dd>
1003</div>
1004<div>
1005<dt>
1006<kbd>j</kbd>
1007<kbd>k</kbd>
1008</dt>
1009<dd>move the row cursor down / up</dd>
1010</div>
1011<div>
1012<dt>
1013<kbd>enter</kbd>
1014</dt>
1015<dd>open the row under the cursor; on Files, a directory opens or closes in place</dd>
1016</div>
1017<div>
1018<dt>
1019<kbd>↑</kbd>
1020<kbd>↓</kbd>
1021<kbd>←</kbd>
1022<kbd>→</kbd>
1023<kbd>home</kbd>
1024<kbd>end</kbd>
1025</dt>
1026<dd>in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file</dd>
1027</div>
1028<div>
1029<dt>
1030<kbd>l</kbd>
1031<kbd>h</kbd>
1032</dt>
1033<dd>on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls</dd>
1034</div>
1035<div>
1036<dt>
1037<kbd>g g</kbd>
1038<kbd>G</kbd>
1039</dt>
1040<dd>first / last row</dd>
1041</div>
1042<div>
1043<dt>
1044<kbd>/</kbd>
1045</dt>
1046<dd>filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)</dd>
1047</div>
1048<div>
1049<dt>
1050<kbd>b</kbd>
1051</dt>
1052<dd>switch branch or tag</dd>
1053</div>
1054<div>
1055<dt>
1056<kbd>s</kbd>
1057<kbd>t</kbd>
1058<kbd>c</kbd>
1059<kbd>r</kbd>
1060<kbd>m</kbd>
1061<kbd>i</kbd>
1062</dt>
1063<dd>tabs: summary, files, commits, branches &amp; tags, merge requests, issues</dd>
1064</div>
1065<div>
1066<dt>
1067<kbd>g h</kbd>
1068</dt>
1069<dd>home</dd>
1070</div>
1071<div>
1072<dt>
1073<kbd>w</kbd>
1074</dt>
1075<dd>wide mode: use the whole width of the screen, or not (remembered)</dd>
1076</div>
1077<div>
1078<dt>
1079<kbd>y</kbd>
1080</dt>
1081<dd>copy a permalink pinned to the commit</dd>
1082</div>
1083<div>
1084<dt>
1085<kbd>d</kbd>
1086<kbd>u</kbd>
1087<kbd>x</kbd>
1088</dt>
1089<dd>diff: split / unified / collapse or expand all</dd>
1090</div>
1091<div>
1092<dt>
1093<kbd>e</kbd>
1094<kbd>E</kbd>
1095</dt>
1096<dd>diff: the whole file in view / every file, with the lines the hunks hide</dd>
1097</div>
1098<div>
1099<dt>
1100<kbd>n</kbd>
1101</dt>
1102<dd>merge request: next note in the diff</dd>
1103</div>
1104<div>
1105<dt>
1106<kbd>esc</kbd>
1107</dt>
1108<dd>close a dialog, leave a field</dd>
1109</div>
1110</dl>
1111</dialog>
1112<dialog id="panel-refs" class="panel modal" aria-label="Switch ref" hx-on:keydown="event.key === 'Escape' && (event.preventDefault(), this.close())" hx-on:click="event.target === this && this.close()">
1113<div class="panel-head">
1114<label for="refs-filter" class="sr">filter branches and tags</label>
1115<input id="refs-filter" type="search" placeholder="Switch branch or tag…" autocomplete="off" data-pick="#panel-refs li" hx-on:input="ermite.filter(this)">
1116<button type="button" class="panel-x" aria-label="Close" hx-on:click="closest('dialog').close()">
1117<kbd>esc</kbd>
1118</button>
1119</div>
1120<div class="panel-cols" data-picklist>
1121<section aria-label="Branches">
1122<h2>Branches <span class="count">1</span>
1123</h2>
1124<ul>
1125<li>
1126<a href="/long/tree/main" aria-current="true">
1127<span class="mark" aria-hidden="true">●</span>main</a>
1128</li>
1129</ul>
1130</section>
1131<section aria-label="Tags">
1132<h2>Tags <span class="count">0</span>
1133</h2>
1134<ul>
1135</ul>
1136</section>
1137</div>
1138</dialog>
1139<dialog id="panel-cmd" class="panel modal" aria-label="Go to" hx-on:close="ermiteFinder.paletteClose()" hx-on:keydown="event.key === 'Escape' && (event.preventDefault(), this.close())" hx-on:click="event.target === this && this.close()">
1140<div class="panel-head">
1141<label for="cmd-q" class="sr">go to</label>
1142<input id="cmd-q" type="search" placeholder="Go to a section, branch, tag, file or repository…" autocomplete="off" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" aria-controls="cmd-list" aria-activedescendant="cmd-o0" hx-on:input="ermite.cmdFilter(this); ermiteFinder.palette(this)" hx-on:keydown="ermite.cmdKey(event)">
1143<button type="button" class="panel-x" aria-label="Close" hx-on:click="closest('dialog').close()">
1144<kbd>esc</kbd>
1145</button>
1146</div>
1147<ul id="cmd-list" class="cmd-list" role="listbox" aria-label="Targets">
1148<li id="cmd-o0" role="option" aria-selected="true" data-k="go home" data-cursor>
1149<a href="/" tabindex="-1">
1150<span class="lbl">home</span>
1151<span class="k">go</span>
1152</a>
1153</li>
1154<li id="cmd-o1" role="option" aria-selected="false" data-k="section summary">
1155<a href="/long" tabindex="-1">
1156<span class="lbl">summary</span>
1157<span class="k">section</span>
1158</a>
1159</li>
1160<li id="cmd-o2" role="option" aria-selected="false" data-k="section files">
1161<a href="/long/tree/main" tabindex="-1">
1162<span class="lbl">files</span>
1163<span class="k">section</span>
1164</a>
1165</li>
1166<li id="cmd-o3" role="option" aria-selected="false" data-k="section commits">
1167<a href="/long/commits/main" tabindex="-1">
1168<span class="lbl">commits</span>
1169<span class="k">section</span>
1170</a>
1171</li>
1172<li id="cmd-o4" role="option" aria-selected="false" data-k="section branches &amp; tags">
1173<a href="/long/refs" tabindex="-1">
1174<span class="lbl">branches &amp; tags</span>
1175<span class="k">section</span>
1176</a>
1177</li>
1178<li id="cmd-o5" role="option" aria-selected="false" data-k="section merge requests">
1179<a href="/long/merge-requests" tabindex="-1">
1180<span class="lbl">merge requests</span>
1181<span class="k">section</span>
1182</a>
1183</li>
1184<li id="cmd-o6" role="option" aria-selected="false" data-k="section actions">
1185<a href="/long/actions" tabindex="-1">
1186<span class="lbl">actions</span>
1187<span class="k">section</span>
1188</a>
1189</li>
1190<li id="cmd-o7" role="option" aria-selected="false" data-k="branch main">
1191<a href="/long/tree/main" tabindex="-1">
1192<span class="lbl">main</span>
1193<span class="k">branch</span>
1194</a>
1195</li>
1196<li id="cmd-o8" role="option" aria-selected="false" data-k="repo diffs">
1197<a href="/diffs" tabindex="-1">
1198<span class="lbl">diffs</span>
1199<span class="k">repo</span>
1200</a>
1201</li>
1202<li id="cmd-o9" role="option" aria-selected="false" data-k="action turn single-key shortcuts on off keyboard">
1203<a href="#" data-fire="keys" tabindex="-1">
1204<span class="lbl">turn single-key shortcuts off</span>
1205<span class="k">action</span>
1206</a>
1207</li>
1208</ul>
1209<p class="panel-foot">
1210<span>
1211<kbd>↑</kbd>
1212<kbd>↓</kbd> move</span>
1213<span>
1214<kbd>enter</kbd> open</span>
1215<span>
1216<kbd>esc</kbd> close</span>
1217</p>
1218</dialog>
1219<div id="keys" hidden hx-on="k-j from:body -> ermite.move(1);
1220         k-k from:body -> ermite.move(-1);
1221         k-top from:body -> ermite.edge(false);
1222         k-bottom from:body -> ermite.edge(true);
1223         k-open from:body -> ermite.open();
1224         k-right from:body -> ermite.rail(true);
1225         k-left from:body -> ermite.rail(false);
1226         k-esc from:body -> ermite.closeDialogs();
1227         k-help from:body -> ermite.dialog('panel-help');
1228         k-refs from:body -> ermite.dialog('panel-refs', 'refs-filter');
1229         k-cmd from:body -> ermite.dialog('panel-cmd', 'cmd-q'); ermiteFinder.load();
1230         k-filter from:body -> ermite.focusFilter();
1231         k-gh from:body -> ermite.go('.brand');
1232         k-s from:body -> ermite.tab('s');
1233         k-t from:body -> ermite.tab('t');
1234         k-c from:body -> ermite.tab('c');
1235         k-r from:body -> ermite.tab('r');
1236         k-m from:body -> ermite.tab('m');
1237         k-i from:body -> ermite.tab('i');
1238         k-next from:body -> ermite.nextNote();
1239         k-split from:body -> ermite.layout('split');
1240         k-unified from:body -> ermite.layout('unified');
1241         k-collapse from:body -> ermite.collapse();
1242         k-wide from:body -> window.ermiteWide.toggle();
1243         k-expand from:body -> ermite.expandFile();
1244         k-expandAll from:body -> ermite.expandAll();
1245         k-permalink from:body -> ermite.permalink();
1246         k-merge from:body -> window.ermiteMR?.openMerge();
1247         k-read from:body -> window.ermiteMR?.markRead();
1248         k-gf from:body -> window.ermiteMR?.focusFiles();
1249         k-keys from:body -> ermite.toggleKeys()">
1250</div>
1251</body>
1252</html>

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 4

Tags 45

↑↓ moveenter openesc close