diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-03-02 18:11:23 -0600 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-03-02 18:11:23 -0600 |
commit | caed61adeee1b5f1bf6943abd53e381ca31588c6 (patch) | |
tree | bca52ed45e49d5f4df0bfac65744f0067ebea61d | |
parent | 6cc4cf1e151fb8da16796d7bbab16bc8a1ac08b6 (diff) | |
download | gitlab-ce-caed61adeee1b5f1bf6943abd53e381ca31588c6.tar.gz |
Use separate error class for cherry-pick and revert tree errors
-rw-r--r-- | app/models/repository.rb | 5 | ||||
-rw-r--r-- | app/services/commits/change_service.rb | 14 |
2 files changed, 8 insertions, 11 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb index 4f8b436ee16..e7cc8d6e083 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -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) diff --git a/app/services/commits/change_service.rb b/app/services/commits/change_service.rb index 3051ebf5e52..3dcecee9365 100644 --- a/app/services/commits/change_service.rb +++ b/app/services/commits/change_service.rb @@ -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]}" |