v0.23.0 333c710

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

Tags 45

↑↓ moveenter openesc close