aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2020-03-05 16:55:21 +0800
committerGitHub <noreply@github.com>2020-03-05 16:55:21 +0800
commitfd85d31cb4a01cb7fdf77f78342bc417bc802cdf (patch)
treeca3b00b95b29211b64e06aa0833d146bccd561f5
parentc9e4d7a56431752e8f074bb71380eabc2117760d (diff)
downloadgitea-fd85d31cb4a01cb7fdf77f78342bc417bc802cdf.tar.gz
gitea-fd85d31cb4a01cb7fdf77f78342bc417bc802cdf.zip
Ensure executable bit is kept on the web editor (#10607) (#10614)
Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com> Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com>
-rw-r--r--modules/repofiles/update.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/repofiles/update.go b/modules/repofiles/update.go
index 32a5c5297b..02bd318917 100644
--- a/modules/repofiles/update.go
+++ b/modules/repofiles/update.go
@@ -210,6 +210,7 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up
encoding := "UTF-8"
bom := false
+ executable := false
if !opts.IsNewFile {
fromEntry, err := commit.GetTreeEntryByPath(fromTreePath)
@@ -245,6 +246,7 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up
return nil, models.ErrSHAOrCommitIDNotProvided{}
}
encoding, bom = detectEncodingAndBOM(fromEntry, repo)
+ executable = fromEntry.IsExecutable()
}
// For the path where this file will be created/updated, we need to make
@@ -368,8 +370,14 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up
}
// Add the object to the index
- if err := t.AddObjectToIndex("100644", objectHash, treePath); err != nil {
- return nil, err
+ if executable {
+ if err := t.AddObjectToIndex("100755", objectHash, treePath); err != nil {
+ return nil, err
+ }
+ } else {
+ if err := t.AddObjectToIndex("100644", objectHash, treePath); err != nil {
+ return nil, err
+ }
}
// Now write the tree