REMOVE THIS COMMIT: allow undoing last resolution
This commit is contained in:
parent
f0bbfe7a62
commit
99e00856eb
3 changed files with 26 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue