Chris@909: Index: app/views/settings/_general.rhtml Chris@909: =================================================================== Chris@909: --- app/views/settings/_general.rhtml (revision 2094) Chris@909: +++ app/views/settings/_general.rhtml (working copy) Chris@909: @@ -48,6 +48,9 @@ Chris@909:

Chris@909: <%= text_field_tag 'settings[feeds_limit]', Setting.feeds_limit, :size => 6 %>

Chris@909: Chris@909: +

Chris@909: +<%= text_field_tag 'settings[diff_max_lines_displayed]', Setting.diff_max_lines_displayed, :size => 6 %>

Chris@909: + Chris@909:

Chris@909: <%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %><%= hidden_field_tag 'settings[gravatar_enabled]', 0 %>

Chris@909: Chris@909: Index: app/views/common/_diff.rhtml Chris@909: =================================================================== Chris@909: --- app/views/common/_diff.rhtml (revision 2111) Chris@909: +++ app/views/common/_diff.rhtml (working copy) Chris@909: @@ -1,4 +1,5 @@ Chris@909: -<% Redmine::UnifiedDiff.new(diff, :type => diff_type).each do |table_file| -%> Chris@909: +<% diff = Redmine::UnifiedDiff.new(diff, :type => diff_type, :max_lines => Setting.diff_max_lines_displayed.to_i) -%> Chris@909: +<% diff.each do |table_file| -%> Chris@909:
Chris@909: <% if diff_type == 'sbs' -%> Chris@909: Chris@909: @@ -62,3 +63,5 @@ Chris@909: Chris@909: Chris@909: <% end -%> Chris@909: + Chris@909: +<%= l(:text_diff_truncated) if diff.truncated? %> Chris@909: Index: lang/lt.yml Chris@909: =================================================================== Chris@909: --- config/settings.yml (revision 2094) Chris@909: +++ config/settings.yml (working copy) Chris@909: @@ -61,6 +61,9 @@ Chris@909: feeds_limit: Chris@909: format: int Chris@909: default: 15 Chris@909: +diff_max_lines_displayed: Chris@909: + format: int Chris@909: + default: 1500 Chris@909: enabled_scm: Chris@909: serialized: true Chris@909: default: Chris@909: Index: lib/redmine/unified_diff.rb Chris@909: =================================================================== Chris@909: --- lib/redmine/unified_diff.rb (revision 2110) Chris@909: +++ lib/redmine/unified_diff.rb (working copy) Chris@909: @@ -19,8 +19,11 @@ Chris@909: # Class used to parse unified diffs Chris@909: class UnifiedDiff < Array Chris@909: def initialize(diff, options={}) Chris@909: + options.assert_valid_keys(:type, :max_lines) Chris@909: diff_type = options[:type] || 'inline' Chris@909: Chris@909: + lines = 0 Chris@909: + @truncated = false Chris@909: diff_table = DiffTable.new(diff_type) Chris@909: diff.each do |line| Chris@909: if line =~ /^(---|\+\+\+) (.*)$/ Chris@909: @@ -28,10 +31,17 @@ Chris@909: diff_table = DiffTable.new(diff_type) Chris@909: end Chris@909: diff_table.add_line line Chris@909: + lines += 1 Chris@909: + if options[:max_lines] && lines > options[:max_lines] Chris@909: + @truncated = true Chris@909: + break Chris@909: + end Chris@909: end Chris@909: self << diff_table unless diff_table.empty? Chris@909: self Chris@909: end Chris@909: + Chris@909: + def truncated?; @truncated; end Chris@909: end Chris@909: Chris@909: # Class that represents a file diff