Commit 5fdcaadf347e41109f20a4dee733f5b51030feda

Authored by Dmitriy Zaporozhets
2 parents 273093a9 59e18195

Merge branch 'fix-new-mr-502' into 'master'

Fix 502 error on new merge request page

When diff is huge we try to render it that cause 502 error often.
After this patch we apply soft limits to diffs. So if diff is huge - we doing show it

Fixes #1323
app/controllers/projects/merge_requests_controller.rb
@@ -90,6 +90,9 @@ class Projects::MergeRequestsController < Projects::ApplicationController @@ -90,6 +90,9 @@ class Projects::MergeRequestsController < Projects::ApplicationController
90 @merge_request.title = @merge_request.source_branch.titleize.humanize 90 @merge_request.title = @merge_request.source_branch.titleize.humanize
91 @target_project = @merge_request.target_project 91 @target_project = @merge_request.target_project
92 @target_repo = @target_project.repository 92 @target_repo = @target_project.repository
  93 +
  94 + diff_line_count = Commit::diff_line_count(@diffs)
  95 + @suppress_diff = Commit::diff_suppress?(@diffs, diff_line_count)
93 end 96 end
94 end 97 end
95 98
app/views/projects/commits/_diffs.html.haml
@@ -6,12 +6,13 @@ @@ -6,12 +6,13 @@
6 %p 6 %p
7 To preserve performance the diff is not shown. 7 To preserve performance the diff is not shown.
8 - if current_controller?(:commit) or current_controller?(:merge_requests) 8 - if current_controller?(:commit) or current_controller?(:merge_requests)
9 - Please, download the diff as  
10 - if current_controller?(:commit) 9 - if current_controller?(:commit)
  10 + Please, download the diff as
11 = link_to "plain diff", project_commit_path(@project, @commit, format: :diff), class: "underlined-link" 11 = link_to "plain diff", project_commit_path(@project, @commit, format: :diff), class: "underlined-link"
12 or 12 or
13 = link_to "email patch", project_commit_path(@project, @commit, format: :patch), class: "underlined-link" 13 = link_to "email patch", project_commit_path(@project, @commit, format: :patch), class: "underlined-link"
14 - - else 14 + - elsif @merge_request && @merge_request.persisted?
  15 + Please, download the diff as
15 = link_to "plain diff", project_merge_request_path(@project, @merge_request, format: :diff), class: "underlined-link" 16 = link_to "plain diff", project_merge_request_path(@project, @merge_request, format: :diff), class: "underlined-link"
16 or 17 or
17 = link_to "email patch", project_merge_request_path(@project, @merge_request, format: :patch), class: "underlined-link" 18 = link_to "email patch", project_merge_request_path(@project, @merge_request, format: :patch), class: "underlined-link"