Chris@0
|
1 Index: app/views/settings/_general.rhtml
|
Chris@0
|
2 ===================================================================
|
Chris@0
|
3 --- app/views/settings/_general.rhtml (revision 2094)
|
Chris@0
|
4 +++ app/views/settings/_general.rhtml (working copy)
|
Chris@0
|
5 @@ -48,6 +48,9 @@
|
Chris@0
|
6 <p><label><%= l(:setting_feeds_limit) %></label>
|
Chris@0
|
7 <%= text_field_tag 'settings[feeds_limit]', Setting.feeds_limit, :size => 6 %></p>
|
Chris@0
|
8
|
Chris@0
|
9 +<p><label><%= l(:setting_diff_max_lines_displayed) %></label>
|
Chris@0
|
10 +<%= text_field_tag 'settings[diff_max_lines_displayed]', Setting.diff_max_lines_displayed, :size => 6 %></p>
|
Chris@0
|
11 +
|
Chris@0
|
12 <p><label><%= l(:setting_gravatar_enabled) %></label>
|
Chris@0
|
13 <%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %><%= hidden_field_tag 'settings[gravatar_enabled]', 0 %></p>
|
Chris@0
|
14 </div>
|
Chris@0
|
15 Index: app/views/common/_diff.rhtml
|
Chris@0
|
16 ===================================================================
|
Chris@0
|
17 --- app/views/common/_diff.rhtml (revision 2111)
|
Chris@0
|
18 +++ app/views/common/_diff.rhtml (working copy)
|
Chris@0
|
19 @@ -1,4 +1,5 @@
|
Chris@0
|
20 -<% Redmine::UnifiedDiff.new(diff, :type => diff_type).each do |table_file| -%>
|
Chris@0
|
21 +<% diff = Redmine::UnifiedDiff.new(diff, :type => diff_type, :max_lines => Setting.diff_max_lines_displayed.to_i) -%>
|
Chris@0
|
22 +<% diff.each do |table_file| -%>
|
Chris@0
|
23 <div class="autoscroll">
|
Chris@0
|
24 <% if diff_type == 'sbs' -%>
|
Chris@0
|
25 <table class="filecontent CodeRay">
|
Chris@0
|
26 @@ -62,3 +63,5 @@
|
Chris@0
|
27
|
Chris@0
|
28 </div>
|
Chris@0
|
29 <% end -%>
|
Chris@0
|
30 +
|
Chris@0
|
31 +<%= l(:text_diff_truncated) if diff.truncated? %>
|
Chris@0
|
32 Index: lang/lt.yml
|
Chris@0
|
33 ===================================================================
|
Chris@0
|
34 --- config/settings.yml (revision 2094)
|
Chris@0
|
35 +++ config/settings.yml (working copy)
|
Chris@0
|
36 @@ -61,6 +61,9 @@
|
Chris@0
|
37 feeds_limit:
|
Chris@0
|
38 format: int
|
Chris@0
|
39 default: 15
|
Chris@0
|
40 +diff_max_lines_displayed:
|
Chris@0
|
41 + format: int
|
Chris@0
|
42 + default: 1500
|
Chris@0
|
43 enabled_scm:
|
Chris@0
|
44 serialized: true
|
Chris@0
|
45 default:
|
Chris@0
|
46 Index: lib/redmine/unified_diff.rb
|
Chris@0
|
47 ===================================================================
|
Chris@0
|
48 --- lib/redmine/unified_diff.rb (revision 2110)
|
Chris@0
|
49 +++ lib/redmine/unified_diff.rb (working copy)
|
Chris@0
|
50 @@ -19,8 +19,11 @@
|
Chris@0
|
51 # Class used to parse unified diffs
|
Chris@0
|
52 class UnifiedDiff < Array
|
Chris@0
|
53 def initialize(diff, options={})
|
Chris@0
|
54 + options.assert_valid_keys(:type, :max_lines)
|
Chris@0
|
55 diff_type = options[:type] || 'inline'
|
Chris@0
|
56
|
Chris@0
|
57 + lines = 0
|
Chris@0
|
58 + @truncated = false
|
Chris@0
|
59 diff_table = DiffTable.new(diff_type)
|
Chris@0
|
60 diff.each do |line|
|
Chris@0
|
61 if line =~ /^(---|\+\+\+) (.*)$/
|
Chris@0
|
62 @@ -28,10 +31,17 @@
|
Chris@0
|
63 diff_table = DiffTable.new(diff_type)
|
Chris@0
|
64 end
|
Chris@0
|
65 diff_table.add_line line
|
Chris@0
|
66 + lines += 1
|
Chris@0
|
67 + if options[:max_lines] && lines > options[:max_lines]
|
Chris@0
|
68 + @truncated = true
|
Chris@0
|
69 + break
|
Chris@0
|
70 + end
|
Chris@0
|
71 end
|
Chris@0
|
72 self << diff_table unless diff_table.empty?
|
Chris@0
|
73 self
|
Chris@0
|
74 end
|
Chris@0
|
75 +
|
Chris@0
|
76 + def truncated?; @truncated; end
|
Chris@0
|
77 end
|
Chris@0
|
78
|
Chris@0
|
79 # Class that represents a file diff
|