REMOVE THIS COMMIT: allow undoing last resolution

This commit is contained in:
Sean McGivern 2016-08-01 11:13:47 +01:00 committed by Fatih Acet
parent f0bbfe7a62
commit 99e00856eb
3 changed files with 26 additions and 1 deletions

View file

@ -10,7 +10,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController
before_action :module_enabled
before_action :merge_request, only: [
:edit, :update, :show, :diffs, :commits, :conflicts, :builds, :merge, :merge_check,
:ci_status, :toggle_subscription, :cancel_merge_when_build_succeeds, :remove_wip, :resolve_conflicts
:ci_status, :toggle_subscription, :cancel_merge_when_build_succeeds, :remove_wip, :resolve_conflicts,
:undo_last_resolution
]
before_action :validates_merge_request, only: [:show, :diffs, :commits, :builds]
before_action :define_show_vars, only: [:show, :diffs, :commits, :conflicts, :builds]
@ -160,6 +161,16 @@ class Projects::MergeRequestsController < Projects::ApplicationController
end
end
def undo_last_resolution
rugged = @merge_request.project.repository.rugged
ref = Gitlab::Git::BRANCH_REF_PREFIX + @merge_request.source_branch
prev = rugged.ref(ref).target
rugged.references.update(ref, prev.parents.first.oid) if prev.parents.length == 2
head :ok
end
def builds
respond_to do |format|
format.html do

View file

@ -729,6 +729,7 @@ Rails.application.routes.draw do
post :remove_wip
get :diff_for_path
post :resolve_conflicts
post :undo_last_resolution
end
collection do

View file

@ -638,6 +638,19 @@ describe Projects::MergeRequestsController do
it 'redirects to the MR show page' do
expect(response).to redirect_to([merge_request_with_conflicts.target_project.namespace.becomes(Namespace), merge_request_with_conflicts.target_project, merge_request_with_conflicts])
end
context 'undoing the resolution' do
before do
post :undo_last_resolution,
namespace_id: merge_request_with_conflicts.project.namespace.to_param,
project_id: merge_request_with_conflicts.project.to_param,
id: merge_request_with_conflicts.iid
end
it 'undoes the commit' do
expect(original_head_sha).to eq(merge_request_with_conflicts.source_branch_head.sha)
end
end
end
context 'when sections are missing' do