mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Ensure executable bit is kept on the web editor (#10607)
Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com>
This commit is contained in:
		@@ -230,6 +230,7 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	encoding := "UTF-8"
 | 
						encoding := "UTF-8"
 | 
				
			||||||
	bom := false
 | 
						bom := false
 | 
				
			||||||
 | 
						executable := false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if !opts.IsNewFile {
 | 
						if !opts.IsNewFile {
 | 
				
			||||||
		fromEntry, err := commit.GetTreeEntryByPath(fromTreePath)
 | 
							fromEntry, err := commit.GetTreeEntryByPath(fromTreePath)
 | 
				
			||||||
@@ -265,6 +266,7 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up
 | 
				
			|||||||
			return nil, models.ErrSHAOrCommitIDNotProvided{}
 | 
								return nil, models.ErrSHAOrCommitIDNotProvided{}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		encoding, bom = detectEncodingAndBOM(fromEntry, repo)
 | 
							encoding, bom = detectEncodingAndBOM(fromEntry, repo)
 | 
				
			||||||
 | 
							executable = fromEntry.IsExecutable()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// For the path where this file will be created/updated, we need to make
 | 
						// For the path where this file will be created/updated, we need to make
 | 
				
			||||||
@@ -388,9 +390,15 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Add the object to the index
 | 
						// Add the object to the index
 | 
				
			||||||
 | 
						if executable {
 | 
				
			||||||
 | 
							if err := t.AddObjectToIndex("100755", objectHash, treePath); err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
		if err := t.AddObjectToIndex("100644", objectHash, treePath); err != nil {
 | 
							if err := t.AddObjectToIndex("100644", objectHash, treePath); err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Now write the tree
 | 
						// Now write the tree
 | 
				
			||||||
	treeHash, err := t.WriteTree()
 | 
						treeHash, err := t.WriteTree()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user