detached fda3c2b

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