Show a notice for diffs that are too large
This builds on the changes introduced in https://gitlab.com/gitlab-org/gitlab_git/merge_requests/72 and results in merge requests with large diffs (e.g. due to them containing minified CSS) loading much faster.
This commit is contained in:
parent
bdbc988434
commit
3f0d780c19
2
Gemfile
2
Gemfile
|
|
@ -51,7 +51,7 @@ gem "browser", '~> 1.0.0'
|
|||
|
||||
# Extracting information from a git repository
|
||||
# Provide access to Gitlab::Git library
|
||||
gem "gitlab_git", '~> 9.0'
|
||||
gem "gitlab_git", '~> 10.0'
|
||||
|
||||
# LDAP Auth
|
||||
# GitLab fork with several improvements to original library. For full list of changes
|
||||
|
|
|
|||
|
|
@ -359,11 +359,11 @@ GEM
|
|||
posix-spawn (~> 0.3)
|
||||
gitlab_emoji (0.3.1)
|
||||
gemojione (~> 2.2, >= 2.2.1)
|
||||
gitlab_git (9.0.3)
|
||||
gitlab_git (10.0.0)
|
||||
activesupport (~> 4.0)
|
||||
charlock_holmes (~> 0.7.3)
|
||||
github-linguist (~> 4.7.0)
|
||||
rugged (~> 0.24.0b13)
|
||||
rugged (~> 0.24.0)
|
||||
gitlab_meta (7.0)
|
||||
gitlab_omniauth-ldap (1.2.1)
|
||||
net-ldap (~> 0.9)
|
||||
|
|
@ -942,7 +942,7 @@ DEPENDENCIES
|
|||
github-markup (~> 1.3.1)
|
||||
gitlab-flowdock-git-hook (~> 1.0.1)
|
||||
gitlab_emoji (~> 0.3.0)
|
||||
gitlab_git (~> 9.0)
|
||||
gitlab_git (~> 10.0)
|
||||
gitlab_meta (= 7.0)
|
||||
gitlab_omniauth-ldap (~> 1.2.1)
|
||||
gollum-lib (~> 4.1.0)
|
||||
|
|
|
|||
|
|
@ -42,13 +42,17 @@
|
|||
.diff-content.diff-wrap-lines
|
||||
-# Skipp all non non-supported blobs
|
||||
- return unless blob.respond_to?('text?')
|
||||
- if blob_text_viewable?(blob)
|
||||
- if diff_view == 'parallel'
|
||||
= render "projects/diffs/parallel_view", diff_file: diff_file, project: project, blob: blob, index: i
|
||||
- else
|
||||
= render "projects/diffs/text_file", diff_file: diff_file, index: i
|
||||
- elsif blob.image?
|
||||
- old_file = project.repository.prev_blob_for_diff(diff_commit, diff_file)
|
||||
= render "projects/diffs/image", diff_file: diff_file, old_file: old_file, file: blob, index: i
|
||||
- if diff_file.too_large?
|
||||
.nothing-here-block
|
||||
This diff could not be displayed because it is too large.
|
||||
- else
|
||||
.nothing-here-block No preview for this file type
|
||||
- if blob_text_viewable?(blob)
|
||||
- if diff_view == 'parallel'
|
||||
= render "projects/diffs/parallel_view", diff_file: diff_file, project: project, blob: blob, index: i
|
||||
- else
|
||||
= render "projects/diffs/text_file", diff_file: diff_file, index: i
|
||||
- elsif blob.image?
|
||||
- old_file = project.repository.prev_blob_for_diff(diff_commit, diff_file)
|
||||
= render "projects/diffs/image", diff_file: diff_file, old_file: old_file, file: blob, index: i
|
||||
- else
|
||||
.nothing-here-block No preview for this file type
|
||||
|
|
|
|||
|
|
@ -24,6 +24,10 @@ module Gitlab
|
|||
@lines ||= parser.parse(raw_diff.each_line).to_a
|
||||
end
|
||||
|
||||
def too_large?
|
||||
diff.too_large?
|
||||
end
|
||||
|
||||
def highlighted_diff_lines
|
||||
Gitlab::Diff::Highlight.new(self).highlight
|
||||
end
|
||||
|
|
|
|||
|
|
@ -18,4 +18,18 @@ describe Gitlab::Diff::File, lib: true do
|
|||
describe :mode_changed? do
|
||||
it { expect(diff_file.mode_changed?).to be_falsey }
|
||||
end
|
||||
|
||||
describe '#too_large?' do
|
||||
it 'returns true for a file that is too large' do
|
||||
expect(diff).to receive(:too_large?).and_return(true)
|
||||
|
||||
expect(diff_file.too_large?).to eq(true)
|
||||
end
|
||||
|
||||
it 'returns false for a file that is small enough' do
|
||||
expect(diff).to receive(:too_large?).and_return(false)
|
||||
|
||||
expect(diff_file.too_large?).to eq(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue