Some fixes and refactors for code related to forks.

This commit is contained in:
Rubén Dávila 2016-02-10 16:05:04 -05:00 committed by Robert Speicher
parent 11345866d8
commit 2ea5b37f2e
3 changed files with 27 additions and 6 deletions

View file

@ -124,6 +124,8 @@ module CommitsHelper
end
def revert_commit_link(show_modal_condition, continue_to_path)
return unless current_user
if show_modal_condition
link_to('Revert', '#modal-revert-commit',
'data-target' => '#modal-revert-commit',

View file

@ -628,8 +628,6 @@ class Repository
args = [commit.id, source_sha]
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)
revert_index = rugged.revert_commit(*args)

View file

@ -14,9 +14,7 @@ module Commits
if commit
success
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.")
custom_error
end
rescue Repository::CommitError, Gitlab::Git::Repository::InvalidBlobName, GitHooksService::PreReceiveError, ValidationError => ex
error(ex.message)
@ -24,7 +22,11 @@ module Commits
def commit
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
repository.revert(current_user, @commit, @target_branch)
end
@ -32,6 +34,25 @@ module Commits
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)
raise ValidationError.new(message)
end