detached 00a725f

Merge ef0b7b0cfc5e5c8e08a37f7ed456c706ac14aa76 into 5e05d65caece9a3677c109ffa343ad00358d4405

commit
00a725f8b860b6cda6c8973c7d900fe95d45b8b9
author
ermite · · 2026-10-20 06:05 UTC
merge of
5e05d65 + ef0b7b0 · diff against the first parent
signature
unsigned
2 files · +177 -70
M gen/ermite/git.pb.go +152 -67 generated file: collapsed
M proto/ermite/git.proto +25 -3
@@ -53,6 +53,24 @@ enum FileStatus {
5353 FILE_STATUS_TYPE_CHANGED = 6;
5454 }
5555
56+// FileOmission tells why a changed file has no hunks although it changed.
57+enum FileOmission {
58+ // The file is not omitted: its hunks are present, or it has none to show
59+ // (binary, pure rename, mode change), or it is outside the requested window.
60+ FILE_OMISSION_UNSPECIFIED = 0;
61+ // The file is generated or vendored, by its path: its hunks were not read.
62+ // It can be read on its own.
63+ FILE_OMISSION_GENERATED = 1;
64+ // The file changes more lines than the per-file limit. It can be read on its own.
65+ FILE_OMISSION_LARGE = 2;
66+ // The file did not fit in what remained of the total limits of the diff.
67+ // It can be read on its own.
68+ FILE_OMISSION_BUDGET = 3;
69+ // The file's text exceeds the memory limit of a diff: it cannot be shown,
70+ // even on its own. Clone the repository to read it.
71+ FILE_OMISSION_UNAVAILABLE = 4;
72+}
73+
5674 // LineKind tells how a line of a hunk relates to the two sides of a diff.
5775 enum LineKind {
5876 // Not set. Never returned.
@@ -335,8 +353,8 @@ message Diff {
335353 // Files are the changed files, ordered by path. Files past the file limit are
336354 // omitted.
337355 repeated FileDiff files = 1;
338- // Truncated is true when the diff is incomplete: files were omitted, or at
339- // least one listed file has truncated set. DiffStats still count everything.
356+ // Truncated is true when the diff is incomplete: files were omitted past the
357+ // file limit, or at least one listed file has omitted set. DiffStats still count everything.
340358 bool truncated = 2;
341359 }
342360
@@ -367,11 +385,15 @@ message FileDiff {
367385 // copied file, and 0 otherwise.
368386 int32 similarity = 11;
369387 // Truncated is true when the file exceeded a diff limit: hunks is then empty
370- // although the file changed. Additions and deletions remain accurate.
388+ // although the file changed. Additions and deletions remain accurate. It is
389+ // kept for compatibility and equals omitted != FILE_OMISSION_UNSPECIFIED.
371390 bool truncated = 12;
372391 // Hunks are the changed regions, in file order. Empty for a binary file, a
373392 // truncated file, a pure rename and a mode-only change.
374393 repeated Hunk hunks = 13;
394+ // Omitted tells why hunks is empty although the file changed. truncated is
395+ // true exactly when omitted is not FILE_OMISSION_UNSPECIFIED.
396+ FileOmission omitted = 14;
375397 }
376398
377399 // Hunk is a contiguous changed region with its context.
@@ -53,6 +53,24 @@ enum FileStatus {
53 FILE_STATUS_TYPE_CHANGED = 6;53 FILE_STATUS_TYPE_CHANGED = 6;
54 }54 }
55 55
56+// FileOmission tells why a changed file has no hunks although it changed.
57+enum FileOmission {
58+ // The file is not omitted: its hunks are present, or it has none to show
59+ // (binary, pure rename, mode change), or it is outside the requested window.
60+ FILE_OMISSION_UNSPECIFIED = 0;
61+ // The file is generated or vendored, by its path: its hunks were not read.
62+ // It can be read on its own.
63+ FILE_OMISSION_GENERATED = 1;
64+ // The file changes more lines than the per-file limit. It can be read on its own.
65+ FILE_OMISSION_LARGE = 2;
66+ // The file did not fit in what remained of the total limits of the diff.
67+ // It can be read on its own.
68+ FILE_OMISSION_BUDGET = 3;
69+ // The file's text exceeds the memory limit of a diff: it cannot be shown,
70+ // even on its own. Clone the repository to read it.
71+ FILE_OMISSION_UNAVAILABLE = 4;
72+}
73+
56 // LineKind tells how a line of a hunk relates to the two sides of a diff.74 // LineKind tells how a line of a hunk relates to the two sides of a diff.
57 enum LineKind {75 enum LineKind {
58 // Not set. Never returned.76 // Not set. Never returned.
@@ -335,8 +353,8 @@ message Diff {
335 // Files are the changed files, ordered by path. Files past the file limit are353 // Files are the changed files, ordered by path. Files past the file limit are
336 // omitted.354 // omitted.
337 repeated FileDiff files = 1;355 repeated FileDiff files = 1;
338- // Truncated is true when the diff is incomplete: files were omitted, or at356+ // Truncated is true when the diff is incomplete: files were omitted past the
339- // least one listed file has truncated set. DiffStats still count everything.357+ // file limit, or at least one listed file has omitted set. DiffStats still count everything.
340 bool truncated = 2;358 bool truncated = 2;
341 }359 }
342 360
@@ -367,11 +385,15 @@ message FileDiff {
367 // copied file, and 0 otherwise.385 // copied file, and 0 otherwise.
368 int32 similarity = 11;386 int32 similarity = 11;
369 // Truncated is true when the file exceeded a diff limit: hunks is then empty387 // Truncated is true when the file exceeded a diff limit: hunks is then empty
370- // although the file changed. Additions and deletions remain accurate.388+ // although the file changed. Additions and deletions remain accurate. It is
389+ // kept for compatibility and equals omitted != FILE_OMISSION_UNSPECIFIED.
371 bool truncated = 12;390 bool truncated = 12;
372 // Hunks are the changed regions, in file order. Empty for a binary file, a391 // Hunks are the changed regions, in file order. Empty for a binary file, a
373 // truncated file, a pure rename and a mode-only change.392 // truncated file, a pure rename and a mode-only change.
374 repeated Hunk hunks = 13;393 repeated Hunk hunks = 13;
394+ // Omitted tells why hunks is empty although the file changed. truncated is
395+ // true exactly when omitted is not FILE_OMISSION_UNSPECIFIED.
396+ FileOmission omitted = 14;
375 }397 }
376 398
377 // Hunk is a contiguous changed region with its context.399 // Hunk is a contiguous changed region with its context.

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 18

↑↓ moveenter openesc close