Use separate error class for cherry-pick and revert tree errors

This commit is contained in:
Douwe Maan 2017-03-02 18:11:23 -06:00
parent 6cc4cf1e15
commit caed61adee
2 changed files with 8 additions and 11 deletions

View file

@ -6,6 +6,7 @@ class Repository
attr_accessor :path_with_namespace, :project
CommitError = Class.new(StandardError)
CreateTreeError = Class.new(StandardError)
# Methods that cache data from the Git repository.
#
@ -871,7 +872,7 @@ class Repository
revert_tree_id = check_revert_content(commit, start_commit.sha)
unless revert_tree_id
raise Repository::CommitError.new('Failed to revert commit')
raise Repository::CreateTreeError.new('Failed to revert commit')
end
committer = user_to_committer(user)
@ -895,7 +896,7 @@ class Repository
cherry_pick_tree_id = check_cherry_pick_content(commit, start_commit.sha)
unless cherry_pick_tree_id
raise Repository::CommitError.new('Failed to cherry-pick commit')
raise Repository::CreateTreeError.new('Failed to cherry-pick commit')
end
committer = user_to_committer(user)

View file

@ -37,14 +37,10 @@ module Commits
start_branch_name: @start_branch)
success
rescue Repository::CommitError => e
if e.message =~ /Failed to/
error_msg = "Sorry, we cannot #{action.to_s.dasherize} this #{@commit.change_type_title(current_user)} automatically.
rescue Repository::CreateTreeError => e
error_msg = "Sorry, we cannot #{action.to_s.dasherize} this #{@commit.change_type_title(current_user)} automatically.
A #{action.to_s.dasherize} may have already been performed with this #{@commit.change_type_title(current_user)}, or a more recent commit may have updated some of its content."
raise ChangeError, error_msg
else
raise
end
raise ChangeError, error_msg
end
def check_push_permissions
@ -58,8 +54,8 @@ module Commits
end
def validate_target_branch
result = ValidateNewBranchService.new(@project, current_user).
execute(@target_branch)
result = ValidateNewBranchService.new(@project, current_user)
.execute(@target_branch)
if result[:status] == :error
raise ChangeError, "There was an error creating the source branch: #{result[:message]}"