creates the update_file method in repository.rb and applies changes accordingly
This commit is contained in:
parent
385afc28ef
commit
9951854648
|
@ -8,7 +8,8 @@ module CreatesCommit
|
||||||
source_project: @project,
|
source_project: @project,
|
||||||
source_branch: @ref,
|
source_branch: @ref,
|
||||||
target_branch: @target_branch,
|
target_branch: @target_branch,
|
||||||
file_path: @path
|
file_path: @path,
|
||||||
|
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
|
||||||
|
|
|
@ -44,7 +44,7 @@ class Projects::BlobController < Projects::ApplicationController
|
||||||
"#file-path-#{hexdigest(@path)}"
|
"#file-path-#{hexdigest(@path)}"
|
||||||
else
|
else
|
||||||
unless params[:file_name] == @path
|
unless params[:file_name] == @path
|
||||||
previous_path = @path
|
@previous_path = @path
|
||||||
@path = params[:file_name]
|
@path = params[:file_name]
|
||||||
end
|
end
|
||||||
namespace_project_blob_path(@project.namespace, @project, File.join(@target_branch, @path))
|
namespace_project_blob_path(@project.namespace, @project, File.join(@target_branch, @path))
|
||||||
|
|
|
@ -731,6 +731,36 @@ class Repository
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update_file(user, path, previous_path, content, message, branch, update)
|
||||||
|
commit_with_hooks(user, branch) do |ref|
|
||||||
|
committer = user_to_committer(user)
|
||||||
|
options = {}
|
||||||
|
options[:committer] = committer
|
||||||
|
options[:author] = committer
|
||||||
|
options[:commit] = {
|
||||||
|
message: message,
|
||||||
|
branch: ref,
|
||||||
|
}
|
||||||
|
|
||||||
|
if previous_path
|
||||||
|
options[:file] = {
|
||||||
|
path: previous_path
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Gitlab::Git::Blob.remove(raw_repository, options)
|
||||||
|
end
|
||||||
|
|
||||||
|
options[:file] = {
|
||||||
|
content: content,
|
||||||
|
path: path,
|
||||||
|
update: update
|
||||||
|
}
|
||||||
|
|
||||||
|
Gitlab::Git::Blob.commit(raw_repository, options)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def remove_file(user, path, message, branch)
|
def remove_file(user, path, message, branch)
|
||||||
commit_with_hooks(user, branch) do |ref|
|
commit_with_hooks(user, branch) do |ref|
|
||||||
committer = user_to_committer(user)
|
committer = user_to_committer(user)
|
||||||
|
|
|
@ -9,6 +9,7 @@ module Files
|
||||||
|
|
||||||
@commit_message = params[:commit_message]
|
@commit_message = params[:commit_message]
|
||||||
@file_path = params[:file_path]
|
@file_path = params[:file_path]
|
||||||
|
@previous_path = params[:previous_path]
|
||||||
@file_content = if params[:file_content_encoding] == 'base64'
|
@file_content = if params[:file_content_encoding] == 'base64'
|
||||||
Base64.decode64(params[:file_content])
|
Base64.decode64(params[:file_content])
|
||||||
else
|
else
|
||||||
|
|
|
@ -4,7 +4,7 @@ module Files
|
||||||
class UpdateService < Files::BaseService
|
class UpdateService < Files::BaseService
|
||||||
def commit
|
def commit
|
||||||
# Need to update file_path with the new filename
|
# Need to update file_path with the new filename
|
||||||
repository.commit_file(current_user, @file_path, @file_content, @commit_message, @target_branch, true)
|
repository.update_file(current_user, @file_path, @previous_path, @file_content, @commit_message, @target_branch, true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue