diff options
author | Rubén Dávila <rdavila84@gmail.com> | 2016-02-01 10:53:07 -0500 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2016-02-19 13:14:49 -0500 |
commit | 207522f923063132ba9bb3c95b7404d0eaae3760 (patch) | |
tree | 7a7e89142541be8023245077190ce7eace2e4eca /app | |
parent | f56ee9d3b92d97560d3c35f25736556ae3861343 (diff) | |
download | gitlab-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.rb | 4 | ||||
-rw-r--r-- | app/models/merge_request.rb | 2 | ||||
-rw-r--r-- | app/models/repository.rb | 31 |
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) |