diff --git a/CHANGELOG b/CHANGELOG index 94bccb729dd7077f8345077ff0275823ee91cdd1..41973a7905772a4ca400e5ac7f57776fbf5318ac 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -18,6 +18,7 @@ v 8.12.0 (unreleased) - Fix pagination on user snippets page - Escape search term before passing it to Regexp.new !6241 (winniehell) - 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 - Reduce contributions calendar data payload (ClemMakesApps) - Add `web_url` field to issue, merge request, and snippet API objects (Ben Boeckel) diff --git a/app/controllers/concerns/creates_commit.rb b/app/controllers/concerns/creates_commit.rb index f2b8f297bc27886a536478ba77aeb82304cfaa56..dacb5679dd300fde4a034ba762960ee5a41610e7 100644 --- a/app/controllers/concerns/creates_commit.rb +++ b/app/controllers/concerns/creates_commit.rb @@ -7,8 +7,7 @@ def create_commit(service, success_path:, failure_path:, failure_view: nil, succ commit_params = @commit_params.merge( source_project: @project, source_branch: @ref, - target_branch: @target_branch, - previous_path: @previous_path + target_branch: @target_branch ) result = service.new(@tree_edit_project, current_user, commit_params).execute diff --git a/app/controllers/projects/blob_controller.rb b/app/controllers/projects/blob_controller.rb index cdf9a04bacfcfb80d50e15bf590508db4e1c2988..b78cc6585ba1b250f3e851e1e198526c663ff086 100644 --- a/app/controllers/projects/blob_controller.rb +++ b/app/controllers/projects/blob_controller.rb @@ -38,12 +38,7 @@ def edit end def update - if params[:file_path].present? - @previous_path = @path - @path = params[:file_path] - @commit_params[:file_path] = @path - end - + @path = params[:file_path] if params[:file_path].present? after_edit_path = 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) + @@ -143,6 +138,8 @@ def editor_variables params[:file_name] = params[:file].original_filename end File.join(@path, params[:file_name]) + elsif params[:file_path].present? + params[:file_path] else @path end @@ -155,6 +152,7 @@ def editor_variables @commit_params = { file_path: @file_path, commit_message: params[:commit_message], + previous_path: @path, file_content: params[:content], file_content_encoding: params[:encoding], last_commit_sha: params[:last_commit_sha] diff --git a/app/models/repository.rb b/app/models/repository.rb index 7b7090b8a73269ccde1895e83d46ae7f8d7b1f8d..37fbdcfe1c631b964ebed0b8e46c248ae63a5033 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -813,7 +813,7 @@ def update_file(user, path, content, branch:, previous_path:, message:) update: true } - if previous_path + unless previous_path == path || previous_path.blank? options[:file][:previous_path] = previous_path Gitlab::Git::Blob.rename(raw_repository, options) else