Commit 0ac33620 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch '21092-file-execution-flag-is-not-preserved-when-editing-files' into 'master'

While using Gitlab UI to edit a file it changes the file permissions this MR aims to fix it

Closes #21092

See merge request !5979
parents c0d99638 23612ada
...@@ -21,6 +21,7 @@ v 8.12.0 (unreleased) ...@@ -21,6 +21,7 @@ v 8.12.0 (unreleased)
- Fix sorting of issues in API - Fix sorting of issues in API
- Escape search term before passing it to Regexp.new !6241 (winniehell) - Escape search term before passing it to Regexp.new !6241 (winniehell)
- Fix pinned sidebar behavior in smaller viewports !6169 - Fix pinned sidebar behavior in smaller viewports !6169
- Fix file permissions change when updating a file on the Gitlab UI !5979
- Change merge_error column from string to text type - Change merge_error column from string to text type
- Reduce contributions calendar data payload (ClemMakesApps) - Reduce contributions calendar data payload (ClemMakesApps)
- Add `web_url` field to issue, merge request, and snippet API objects (Ben Boeckel) - Add `web_url` field to issue, merge request, and snippet API objects (Ben Boeckel)
......
...@@ -7,8 +7,7 @@ module CreatesCommit ...@@ -7,8 +7,7 @@ module CreatesCommit
commit_params = @commit_params.merge( commit_params = @commit_params.merge(
source_project: @project, source_project: @project,
source_branch: @ref, source_branch: @ref,
target_branch: @target_branch, target_branch: @target_branch
previous_path: @previous_path
) )
result = service.new(@tree_edit_project, current_user, commit_params).execute result = service.new(@tree_edit_project, current_user, commit_params).execute
......
...@@ -38,12 +38,7 @@ class Projects::BlobController < Projects::ApplicationController ...@@ -38,12 +38,7 @@ class Projects::BlobController < Projects::ApplicationController
end end
def update def update
if params[:file_path].present? @path = params[:file_path] if params[:file_path].present?
@previous_path = @path
@path = params[:file_path]
@commit_params[:file_path] = @path
end
after_edit_path = after_edit_path =
if from_merge_request && @target_branch == @ref if from_merge_request && @target_branch == @ref
diffs_namespace_project_merge_request_path(from_merge_request.target_project.namespace, from_merge_request.target_project, from_merge_request) + diffs_namespace_project_merge_request_path(from_merge_request.target_project.namespace, from_merge_request.target_project, from_merge_request) +
...@@ -143,6 +138,8 @@ class Projects::BlobController < Projects::ApplicationController ...@@ -143,6 +138,8 @@ class Projects::BlobController < Projects::ApplicationController
params[:file_name] = params[:file].original_filename params[:file_name] = params[:file].original_filename
end end
File.join(@path, params[:file_name]) File.join(@path, params[:file_name])
elsif params[:file_path].present?
params[:file_path]
else else
@path @path
end end
...@@ -155,6 +152,7 @@ class Projects::BlobController < Projects::ApplicationController ...@@ -155,6 +152,7 @@ class Projects::BlobController < Projects::ApplicationController
@commit_params = { @commit_params = {
file_path: @file_path, file_path: @file_path,
commit_message: params[:commit_message], commit_message: params[:commit_message],
previous_path: @path,
file_content: params[:content], file_content: params[:content],
file_content_encoding: params[:encoding], file_content_encoding: params[:encoding],
last_commit_sha: params[:last_commit_sha] last_commit_sha: params[:last_commit_sha]
......
...@@ -813,7 +813,7 @@ class Repository ...@@ -813,7 +813,7 @@ class Repository
update: true update: true
} }
if previous_path if previous_path && previous_path != path
options[:file][:previous_path] = previous_path options[:file][:previous_path] = previous_path
Gitlab::Git::Blob.rename(raw_repository, options) Gitlab::Git::Blob.rename(raw_repository, options)
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment