Commit 2ea5b37f authored by Rubén Dávila's avatar Rubén Dávila Committed by Robert Speicher

Some fixes and refactors for code related to forks.

parent 11345866
...@@ -124,6 +124,8 @@ module CommitsHelper ...@@ -124,6 +124,8 @@ module CommitsHelper
end end
def revert_commit_link(show_modal_condition, continue_to_path) def revert_commit_link(show_modal_condition, continue_to_path)
return unless current_user
if show_modal_condition if show_modal_condition
link_to('Revert', '#modal-revert-commit', link_to('Revert', '#modal-revert-commit',
'data-target' => '#modal-revert-commit', 'data-target' => '#modal-revert-commit',
......
...@@ -628,8 +628,6 @@ class Repository ...@@ -628,8 +628,6 @@ class Repository
args = [commit.id, source_sha] args = [commit.id, source_sha]
args << { mainline: 1 } if commit.merge_commit? args << { mainline: 1 } if commit.merge_commit?
# Temporary branch exists and contains the revert commit
return true if (base_branch != target_branch) && find_branch(target_branch)
return false unless diff_exists?(source_sha, commit.id) return false unless diff_exists?(source_sha, commit.id)
revert_index = rugged.revert_commit(*args) revert_index = rugged.revert_commit(*args)
......
...@@ -14,9 +14,7 @@ module Commits ...@@ -14,9 +14,7 @@ module Commits
if commit if commit
success success
else else
error("Sorry, we cannot revert this #{params[:revert_type_title]} automatically. custom_error
It may have already been reverted, or a more recent commit may
have updated some of its content.")
end end
rescue Repository::CommitError, Gitlab::Git::Repository::InvalidBlobName, GitHooksService::PreReceiveError, ValidationError => ex rescue Repository::CommitError, Gitlab::Git::Repository::InvalidBlobName, GitHooksService::PreReceiveError, ValidationError => ex
error(ex.message) error(ex.message)
...@@ -24,7 +22,11 @@ module Commits ...@@ -24,7 +22,11 @@ module Commits
def commit def commit
if @create_merge_request if @create_merge_request
repository.revert(current_user, @commit, @target_branch, @commit.revert_branch_name) # Temporary branch exists and contains the revert commit
return true if repository.find_branch(@commit.revert_branch_name)
return false unless create_target_branch
repository.revert(current_user, @commit, @commit.revert_branch_name)
else else
repository.revert(current_user, @commit, @target_branch) repository.revert(current_user, @commit, @target_branch)
end end
...@@ -32,6 +34,25 @@ module Commits ...@@ -32,6 +34,25 @@ module Commits
private private
def custom_error
if @branch_error_msg
error("There was an error creating the source branch: #{@branch_error_msg}")
else
error("Sorry, we cannot revert this #{params[:revert_type_title]} automatically.
It may have already been reverted, or a more recent commit may
have updated some of its content.")
end
end
def create_target_branch
result = CreateBranchService.new(@project, current_user)
.execute(@commit.revert_branch_name, @target_branch, source_project: @source_project)
@branch_error_msg = result[:message]
result[:status] != :error
end
def raise_error(message) def raise_error(message)
raise ValidationError.new(message) raise ValidationError.new(message)
end end
......
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