Handle app crash on huge commits
This commit is contained in:
parent
ac525a74ee
commit
731b6be9c9
2 changed files with 12 additions and 4 deletions
|
@ -5,7 +5,8 @@ class CommitLoad < BaseContext
|
|||
suppress_diff: false,
|
||||
line_notes: [],
|
||||
notes_count: 0,
|
||||
note: nil
|
||||
note: nil,
|
||||
status: :ok
|
||||
}
|
||||
|
||||
commit = project.commit(params[:id])
|
||||
|
@ -14,11 +15,17 @@ class CommitLoad < BaseContext
|
|||
commit = CommitDecorator.decorate(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[:note] = project.build_commit_note(commit)
|
||||
result[:line_notes] = line_notes
|
||||
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
|
||||
|
||||
result
|
||||
|
|
|
@ -41,8 +41,9 @@ class CommitsController < ApplicationController
|
|||
return git_not_found!
|
||||
end
|
||||
|
||||
rescue Grit::Git::GitTimeout
|
||||
render "huge_commit"
|
||||
if result[:status] == :huge_commit
|
||||
render "huge_commit" and return
|
||||
end
|
||||
end
|
||||
|
||||
def compare
|
||||
|
|
Loading…
Reference in a new issue