summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authortiagonbotelho <tiagonbotelho@hotmail.com>2016-08-24 14:30:39 +0100
committerStan Hu <stanhu@gmail.com>2016-09-09 23:05:30 -0400
commit08dc8af7339828852ae8596aeea577f9551d399d (patch)
tree04318881b9fe92f55e91e69c35489e6cc561ac15 /app
parentd01cbe0c8baf0ab630cf5e5d28087e91c8679b70 (diff)
downloadgitlab-ce-08dc8af7339828852ae8596aeea577f9551d399d.tar.gz
fixes distinction between renaming a file and updating its content and21092-file-execution-flag-is-not-preserved-when-editing-files
refactors update file
Diffstat (limited to 'app')
-rw-r--r--app/controllers/concerns/creates_commit.rb3
-rw-r--r--app/controllers/projects/blob_controller.rb10
-rw-r--r--app/models/repository.rb2
3 files changed, 6 insertions, 9 deletions
diff --git a/app/controllers/concerns/creates_commit.rb b/app/controllers/concerns/creates_commit.rb
index f2b8f297bc2..dacb5679dd3 100644
--- a/app/controllers/concerns/creates_commit.rb
+++ b/app/controllers/concerns/creates_commit.rb
@@ -7,8 +7,7 @@ module CreatesCommit
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 cdf9a04bacf..b78cc6585ba 100644
--- a/app/controllers/projects/blob_controller.rb
+++ b/app/controllers/projects/blob_controller.rb
@@ -38,12 +38,7 @@ class Projects::BlobController < Projects::ApplicationController
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 @@ class Projects::BlobController < Projects::ApplicationController
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 @@ class Projects::BlobController < Projects::ApplicationController
@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 7b7090b8a73..37fbdcfe1c6 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -813,7 +813,7 @@ class Repository
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