summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRubén Dávila <rdavila84@gmail.com>2016-02-01 10:53:07 -0500
committerRobert Speicher <rspeicher@gmail.com>2016-02-19 13:14:49 -0500
commit207522f923063132ba9bb3c95b7404d0eaae3760 (patch)
tree7a7e89142541be8023245077190ce7eace2e4eca /app
parentf56ee9d3b92d97560d3c35f25736556ae3861343 (diff)
downloadgitlab-ce-207522f923063132ba9bb3c95b7404d0eaae3760.tar.gz
Some refactor to the revert commit creation.
* Not required to run hooks since it's an internal commit
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/merge_requests_controller.rb4
-rw-r--r--app/models/merge_request.rb2
-rw-r--r--app/models/repository.rb31
3 files changed, 20 insertions, 17 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index e89c869872f..79e6ae26aad 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -193,10 +193,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController
end
def revert
- @repository.revert_merge(current_user, @merge_request.merge_commit_sha, @merge_request.reverse_branch_name)
+ @repository.revert_merge(current_user, @merge_request)
url_params = { merge_request: {
- source_branch: @merge_request.reverse_branch_name,
+ source_branch: @merge_request.revert_branch_name,
target_branch: @merge_request.target_branch,
source_project_id: @merge_request.target_project_id,
target_project_id: @merge_request.target_project_id
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index b7fe6389af7..bb9295e1b68 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -534,7 +534,7 @@ class MergeRequest < ActiveRecord::Base
[diff_base_commit, last_commit]
end
- def reverse_branch_name
+ def revert_branch_name
"revert-#{id}-#{target_branch}"
end
end
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 553f7bca1f6..37fefc91cb2 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -626,25 +626,28 @@ class Repository
merge_commit_sha
end
- def revert_merge(user, merge_commit_id, revert_branch_name)
- find_or_create_branch(user, revert_branch_name, merge_commit_id)
+ def revert_merge(user, merge_request)
+ revert_branch_name = merge_request.revert_branch_name
+ merge_commit_id = merge_request.merge_commit_sha
+
+ # branch exists and it's highly probable that it has the revert commit
+ return if find_branch(revert_branch_name)
+
+ add_branch(user, revert_branch_name, merge_commit_id)
new_index = rugged.revert_commit(merge_commit_id, merge_commit_id, mainline: 1)
committer = user_to_committer(user)
- commit_with_hooks(user, revert_branch_name) do |ref|
- options = {
- message: 'Revert MR',
- author: committer,
- committer: committer,
- tree: new_index.write_tree(rugged),
- parents: [rugged.lookup(merge_commit_id)],
- update_ref: ref
- }
-
- Rugged::Commit.create(rugged, options)
- end
+ options = {
+ message: "Revert \"#{merge_request.title}\"",
+ author: committer,
+ committer: committer,
+ tree: new_index.write_tree(rugged),
+ parents: [rugged.lookup(merge_commit_id)],
+ update_ref: "refs/heads/#{revert_branch_name}"
+ }
+ Rugged::Commit.create(rugged, options)
end
def merged_to_root_ref?(branch_name)