summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRubén Dávila <rdavila84@gmail.com>2016-02-01 20:24:52 -0500
committerRobert Speicher <rspeicher@gmail.com>2016-02-19 13:14:50 -0500
commitdf5f362c3423cc0d3f5f5c64038594e468d8ffdb (patch)
treec3bea3f04d2e328c07b7f0796cf8380eff73bca2 /app
parentb5935f0782028aa8270ebb1a78e157d746864d7e (diff)
downloadgitlab-ce-df5f362c3423cc0d3f5f5c64038594e468d8ffdb.tar.gz
Add some specs plus some refactor.
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/merge_requests_controller.rb6
-rw-r--r--app/models/merge_request.rb8
-rw-r--r--app/models/repository.rb13
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)