Commit 731b6be9 authored by randx's avatar randx

Handle app crash on huge commits

parent ac525a74
...@@ -5,7 +5,8 @@ class CommitLoad < BaseContext ...@@ -5,7 +5,8 @@ class CommitLoad < BaseContext
suppress_diff: false, suppress_diff: false,
line_notes: [], line_notes: [],
notes_count: 0, notes_count: 0,
note: nil note: nil,
status: :ok
} }
commit = project.commit(params[:id]) commit = project.commit(params[:id])
...@@ -14,11 +15,17 @@ class CommitLoad < BaseContext ...@@ -14,11 +15,17 @@ class CommitLoad < BaseContext
commit = CommitDecorator.decorate(commit) commit = CommitDecorator.decorate(commit)
line_notes = project.commit_line_notes(commit) line_notes = project.commit_line_notes(commit)
result[:suppress_diff] = true if commit.diffs.size > 200 && !params[:force_show_diff]
result[:commit] = commit result[:commit] = commit
result[:note] = project.build_commit_note(commit) result[:note] = project.build_commit_note(commit)
result[:line_notes] = line_notes result[:line_notes] = line_notes
result[:notes_count] = line_notes.count + project.commit_notes(commit).count result[:notes_count] = line_notes.count + project.commit_notes(commit).count
begin
result[:suppress_diff] = true if commit.diffs.size > 200 && !params[:force_show_diff]
rescue Grit::Git::GitTimeout
result[:suppress_diff] = true
result[:status] = :huge_commit
end
end end
result result
......
...@@ -41,8 +41,9 @@ class CommitsController < ApplicationController ...@@ -41,8 +41,9 @@ class CommitsController < ApplicationController
return git_not_found! return git_not_found!
end end
rescue Grit::Git::GitTimeout if result[:status] == :huge_commit
render "huge_commit" render "huge_commit" and return
end
end end
def compare def compare
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment