diff options
author | Rubén Dávila <rdavila84@gmail.com> | 2016-02-01 20:24:52 -0500 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2016-02-19 13:14:50 -0500 |
commit | df5f362c3423cc0d3f5f5c64038594e468d8ffdb (patch) | |
tree | c3bea3f04d2e328c07b7f0796cf8380eff73bca2 /app | |
parent | b5935f0782028aa8270ebb1a78e157d746864d7e (diff) | |
download | gitlab-ce-df5f362c3423cc0d3f5f5c64038594e468d8ffdb.tar.gz |
Add some specs plus some refactor.
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/projects/merge_requests_controller.rb | 6 | ||||
-rw-r--r-- | app/models/merge_request.rb | 8 | ||||
-rw-r--r-- | app/models/repository.rb | 13 |
3 files changed, 17 insertions, 10 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index e5bd7c984a1..0fcb3063f29 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -199,11 +199,13 @@ class Projects::MergeRequestsController < Projects::ApplicationController target_branch: @merge_request.target_branch, source_project_id: @merge_request.target_project_id, target_project_id: @merge_request.target_project_id, - description: "Reverts #{@merge_request.to_reference}" + description: @merge_request.revert_description }} if target_branch_exists - @repository.revert_merge(current_user, @merge_request) + @repository.revert_merge(current_user, @merge_request.merge_commit_sha, + @merge_request.revert_branch_name, @merge_request.revert_title) + redirect_to new_namespace_project_merge_request_url(@project.namespace, @project, url_params) else redirect_to namespace_project_merge_request_url(@project.namespace, @project, @merge_request), diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 8d26b1788e1..15ebce359ce 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -537,4 +537,12 @@ class MergeRequest < ActiveRecord::Base def revert_branch_name "revert-#{iid}-#{target_branch}" end + + def revert_title + "Revert \"#{title}\"" + end + + def revert_description + "Reverts #{to_reference}" + end end diff --git a/app/models/repository.rb b/app/models/repository.rb index c57f84175a0..f17d70b3dd0 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -622,25 +622,22 @@ class Repository merge_commit_sha end - def revert_merge(user, merge_request) - revert_branch_name = merge_request.revert_branch_name - merge_commit_id = merge_request.merge_commit_sha - + def revert_merge(user, merge_commit_id, new_branch_name, commit_message) # branch exists and it's highly probable that it has the revert commit - return if find_branch(revert_branch_name) + return if find_branch(new_branch_name) - add_branch(user, revert_branch_name, merge_commit_id) + add_branch(user, new_branch_name, merge_commit_id) new_index = rugged.revert_commit(merge_commit_id, merge_commit_id, mainline: 1) committer = user_to_committer(user) options = { - message: "Revert \"#{merge_request.title}\"", + message: commit_message, author: committer, committer: committer, tree: new_index.write_tree(rugged), parents: [rugged.lookup(merge_commit_id)], - update_ref: "refs/heads/#{revert_branch_name}" + update_ref: "refs/heads/#{new_branch_name}" } Rugged::Commit.create(rugged, options) |