Skip to content

Commit 39cbca0

Browse files
authored
Display human-readable text instead of cryptic filemodes (#26352) (#26358)
Backport #26352 Now, you don't need to be a git expert anymore to know what these numbers mean. ## Before ![grafik](https://github.com/go-gitea/gitea/assets/51889757/9a964bf6-10fd-40a6-aeb2-ac8f437f8c32) ## After ![grafik](https://github.com/go-gitea/gitea/assets/51889757/84573cb9-55b6-4dde-9866-95f71b657554) or when the mode actually changed: ![grafik](https://github.com/go-gitea/gitea/assets/51889757/0f327538-ebdc-40e7-8c99-f9e21b67f638)
1 parent 9aadc25 commit 39cbca0

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

options/locale/locale_en-US.ini

+9
Original file line numberDiff line numberDiff line change
@@ -3474,3 +3474,12 @@ need_approval_desc = Need approval to run workflows for fork pull request.
34743474
type-1.display_name = Individual Project
34753475
type-2.display_name = Repository Project
34763476
type-3.display_name = Organization Project
3477+
3478+
[git.filemode]
3479+
changed_filemode = %[1]s → %[2]s
3480+
# Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", …
3481+
directory = Directory
3482+
normal_file = Normal file
3483+
executable_file = Executable file
3484+
symbolic_link = Symbolic link
3485+
submodule = Submodule

services/gitdiff/gitdiff.go

+17
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,23 @@ func (diffFile *DiffFile) ShouldBeHidden() bool {
427427
return diffFile.IsGenerated || diffFile.IsViewed
428428
}
429429

430+
func (diffFile *DiffFile) ModeTranslationKey(mode string) string {
431+
switch mode {
432+
case "040000":
433+
return "git.filemode.directory"
434+
case "100644":
435+
return "git.filemode.normal_file"
436+
case "100755":
437+
return "git.filemode.executable_file"
438+
case "120000":
439+
return "git.filemode.symbolic_link"
440+
case "160000":
441+
return "git.filemode.submodule"
442+
default:
443+
return mode
444+
}
445+
}
446+
430447
func getCommitFileLineCount(commit *git.Commit, filePath string) int {
431448
blob, err := commit.GetBlobByPath(filePath)
432449
if err != nil {

templates/repo/diff/box.tmpl

+4-2
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,11 @@
110110
<span class="ui label">{{$.locale.Tr "repo.diff.vendored"}}</span>
111111
{{end}}
112112
{{if and $file.Mode $file.OldMode}}
113-
<span class="gt-ml-4 gt-mono">{{$file.OldMode}} &rarr; {{$file.Mode}}</span>
113+
{{$old := $.locale.Tr ($file.ModeTranslationKey $file.OldMode)}}
114+
{{$new := $.locale.Tr ($file.ModeTranslationKey $file.Mode)}}
115+
<span class="gt-ml-4 gt-mono">{{$.locale.Tr "git.filemode.changed_filemode" $old $new}}</span>
114116
{{else if $file.Mode}}
115-
<span class="gt-ml-4 gt-mono">{{$file.Mode}}</span>
117+
<span class="gt-ml-4 gt-mono">{{$.locale.Tr ($file.ModeTranslationKey $file.Mode)}}</span>
116118
{{end}}
117119
</div>
118120
<div class="diff-file-header-actions gt-df gt-ac gt-gap-2 gt-fw">

0 commit comments

Comments
 (0)