From f0ab26fc9097430556cfcb0223a1f17f9739bf1e Mon Sep 17 00:00:00 2001 From: delvh Date: Sat, 5 Aug 2023 23:27:19 +0200 Subject: [PATCH 1/3] Display humanly readable text instead of cryptic filemodes Now, you don't need to be a git expert anymore to know what these numbers mean. It is possible that some of the new translations will never be encountered, but it's better to be safe than --- options/locale/locale_en-US.ini | 12 ++++++++++++ services/gitdiff/gitdiff.go | 25 +++++++++++++++++++++++++ templates/repo/diff/box.tmpl | 4 ++-- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index b2eeab617e48a..59cf32f3762b5 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3505,3 +3505,15 @@ variables.update.success = The variable has been edited. type-1.display_name = Individual Project type-2.display_name = Repository Project type-3.display_name = Organization Project + +[git.filemode] +# Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … +directory = Directory +normal_file_rw0_000_000 = Normal file (Permissions rw-------) +normal_file_rw0_r00_000 = Normal file (Permissions rw-r-----) +normal_file = Normal file +executable_file_rwx_000_000 = Executable file (Permissions rwxr-----) +executable_file_rwx_r0x_000 = Executable file (Permissions rwxr-x---) +executable_file = Executable file +symbolic_link = Symbolic link +submodule = Submodule diff --git a/services/gitdiff/gitdiff.go b/services/gitdiff/gitdiff.go index 9e1db6fd4353c..e6942cb6df180 100644 --- a/services/gitdiff/gitdiff.go +++ b/services/gitdiff/gitdiff.go @@ -427,6 +427,31 @@ func (diffFile *DiffFile) ShouldBeHidden() bool { return diffFile.IsGenerated || diffFile.IsViewed } +func (diffFile *DiffFile) ModeTranslationKey(mode string) string { + switch mode { + case "040000": + return "git.filemode.directory" + case "100600": + return "git.filemode.normal_file_rw0_000_000" + case "100640": + return "git.filemode.normal_file_rw0_r00_000" + case "100644": + return "git.filemode.normal_file" + case "100700": + return "git.filemode.executable_file_rwx_000_000" + case "100750": + return "git.filemode.executable_file_rwx_r0x_000" + case "100755": + return "git.filemode.executable_file" + case "120000": + return "git.filemode.symbolic_link" + case "160000": + return "git.filemode.submodule" + default: + return mode + } +} + func getCommitFileLineCount(commit *git.Commit, filePath string) int { blob, err := commit.GetBlobByPath(filePath) if err != nil { diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl index c4dd1f658d92c..5f8c6811738eb 100644 --- a/templates/repo/diff/box.tmpl +++ b/templates/repo/diff/box.tmpl @@ -130,9 +130,9 @@ {{$.locale.Tr "repo.diff.vendored"}} {{end}} {{if and $file.Mode $file.OldMode}} - {{$file.OldMode}} → {{$file.Mode}} + {{$.locale.Tr ($file.ModeTranslationKey $file.OldMode)}} → {{$.locale.Tr ($file.ModeTranslationKey $file.Mode)}} {{else if $file.Mode}} - {{$file.Mode}} + {{$.locale.Tr ($file.ModeTranslationKey $file.Mode)}} {{end}}
From 9d58ea2938a5577757973c260eaa8b8761126f19 Mon Sep 17 00:00:00 2001 From: delvh Date: Sun, 6 Aug 2023 00:27:37 +0200 Subject: [PATCH 2/3] Remove unused translations --- options/locale/locale_en-US.ini | 4 ---- services/gitdiff/gitdiff.go | 8 -------- 2 files changed, 12 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 59cf32f3762b5..3aa2933adacc2 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3509,11 +3509,7 @@ type-3.display_name = Organization Project [git.filemode] # Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … directory = Directory -normal_file_rw0_000_000 = Normal file (Permissions rw-------) -normal_file_rw0_r00_000 = Normal file (Permissions rw-r-----) normal_file = Normal file -executable_file_rwx_000_000 = Executable file (Permissions rwxr-----) -executable_file_rwx_r0x_000 = Executable file (Permissions rwxr-x---) executable_file = Executable file symbolic_link = Symbolic link submodule = Submodule diff --git a/services/gitdiff/gitdiff.go b/services/gitdiff/gitdiff.go index e6942cb6df180..4cb2b1303df4b 100644 --- a/services/gitdiff/gitdiff.go +++ b/services/gitdiff/gitdiff.go @@ -431,16 +431,8 @@ func (diffFile *DiffFile) ModeTranslationKey(mode string) string { switch mode { case "040000": return "git.filemode.directory" - case "100600": - return "git.filemode.normal_file_rw0_000_000" - case "100640": - return "git.filemode.normal_file_rw0_r00_000" case "100644": return "git.filemode.normal_file" - case "100700": - return "git.filemode.executable_file_rwx_000_000" - case "100750": - return "git.filemode.executable_file_rwx_r0x_000" case "100755": return "git.filemode.executable_file" case "120000": From 8539c8cc18f4f377177f5740e391764e69c550b3 Mon Sep 17 00:00:00 2001 From: delvh Date: Sun, 6 Aug 2023 12:15:33 +0200 Subject: [PATCH 3/3] Handle RTL scripts correctly --- options/locale/locale_en-US.ini | 1 + templates/repo/diff/box.tmpl | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 3aa2933adacc2..64bc0c7cc1f44 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3507,6 +3507,7 @@ type-2.display_name = Repository Project type-3.display_name = Organization Project [git.filemode] +changed_filemode = %[1]s → %[2]s # Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", … directory = Directory normal_file = Normal file diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl index 5f8c6811738eb..324166b03c1da 100644 --- a/templates/repo/diff/box.tmpl +++ b/templates/repo/diff/box.tmpl @@ -130,7 +130,9 @@ {{$.locale.Tr "repo.diff.vendored"}} {{end}} {{if and $file.Mode $file.OldMode}} - {{$.locale.Tr ($file.ModeTranslationKey $file.OldMode)}} → {{$.locale.Tr ($file.ModeTranslationKey $file.Mode)}} + {{$old := $.locale.Tr ($file.ModeTranslationKey $file.OldMode)}} + {{$new := $.locale.Tr ($file.ModeTranslationKey $file.Mode)}} + {{$.locale.Tr "git.filemode.changed_filemode" $old $new}} {{else if $file.Mode}} {{$.locale.Tr ($file.ModeTranslationKey $file.Mode)}} {{end}}