summaryrefslogtreecommitdiff
path: root/app/controllers/projects/merge_requests_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/projects/merge_requests_controller.rb')
-rw-r--r--app/controllers/projects/merge_requests_controller.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 4f9ca0097a1..2fa55b83c0e 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -98,7 +98,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController
@diff_notes_disabled = true
end
- @diffs = @merge_request_diff.diffs(diff_options)
+ if params[:start_sha].present?
+ compare_diff_version
+ else
+ @diffs = @merge_request_diff.diffs(diff_options)
+ end
render json: { html: view_to_html_string("projects/merge_requests/show/_diffs") }
end
@@ -529,4 +533,15 @@ class Projects::MergeRequestsController < Projects::ApplicationController
params[:merge_request] ||= ActionController::Parameters.new(source_project: @project)
@merge_request = MergeRequests::BuildService.new(project, current_user, merge_request_params).execute
end
+
+ def compare_diff_version
+ @compare = CompareService.new.execute(@project, @merge_request_diff.head_commit_sha, @project, params[:start_sha])
+
+ if @compare
+ @commits = @compare.commits
+ @commit = @compare.commit
+ @diffs = @compare.diffs(diff_options)
+ @diff_notes_disabled = true
+ end
+ end
end