summaryrefslogtreecommitdiffstats
path: root/test/fixtures/diffs
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2008-12-07 15:21:40 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2008-12-07 15:21:40 +0000
commitfec86a9ce100dec444872993c792fa99cc489b96 (patch)
treec0455d3f83558cdea85dd621a20c6f6910d4d7f0 /test/fixtures/diffs
parent02acc7fc28dc868757ccb48b224b8bee3429bff7 (diff)
downloadredmine-fec86a9ce100dec444872993c792fa99cc489b96.tar.gz
redmine-fec86a9ce100dec444872993c792fa99cc489b96.zip
Adds a setting to limit the number of diff lines that should be displayed (default to 1500).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2112 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/fixtures/diffs')
-rw-r--r--test/fixtures/diffs/subversion.diff79
1 files changed, 79 insertions, 0 deletions
diff --git a/test/fixtures/diffs/subversion.diff b/test/fixtures/diffs/subversion.diff
new file mode 100644
index 000000000..9b6c9d086
--- /dev/null
+++ b/test/fixtures/diffs/subversion.diff
@@ -0,0 +1,79 @@
+Index: app/views/settings/_general.rhtml
+===================================================================
+--- app/views/settings/_general.rhtml (revision 2094)
++++ app/views/settings/_general.rhtml (working copy)
+@@ -48,6 +48,9 @@
+ <p><label><%= l(:setting_feeds_limit) %></label>
+ <%= text_field_tag 'settings[feeds_limit]', Setting.feeds_limit, :size => 6 %></p>
+
++<p><label><%= l(:setting_diff_max_lines_displayed) %></label>
++<%= text_field_tag 'settings[diff_max_lines_displayed]', Setting.diff_max_lines_displayed, :size => 6 %></p>
++
+ <p><label><%= l(:setting_gravatar_enabled) %></label>
+ <%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %><%= hidden_field_tag 'settings[gravatar_enabled]', 0 %></p>
+ </div>
+Index: app/views/common/_diff.rhtml
+===================================================================
+--- app/views/common/_diff.rhtml (revision 2111)
++++ app/views/common/_diff.rhtml (working copy)
+@@ -1,4 +1,5 @@
+-<% Redmine::UnifiedDiff.new(diff, :type => diff_type).each do |table_file| -%>
++<% diff = Redmine::UnifiedDiff.new(diff, :type => diff_type, :max_lines => Setting.diff_max_lines_displayed.to_i) -%>
++<% diff.each do |table_file| -%>
+ <div class="autoscroll">
+ <% if diff_type == 'sbs' -%>
+ <table class="filecontent CodeRay">
+@@ -62,3 +63,5 @@
+
+ </div>
+ <% end -%>
++
++<%= l(:text_diff_truncated) if diff.truncated? %>
+Index: lang/lt.yml
+===================================================================
+--- config/settings.yml (revision 2094)
++++ config/settings.yml (working copy)
+@@ -61,6 +61,9 @@
+ feeds_limit:
+ format: int
+ default: 15
++diff_max_lines_displayed:
++ format: int
++ default: 1500
+ enabled_scm:
+ serialized: true
+ default:
+Index: lib/redmine/unified_diff.rb
+===================================================================
+--- lib/redmine/unified_diff.rb (revision 2110)
++++ lib/redmine/unified_diff.rb (working copy)
+@@ -19,8 +19,11 @@
+ # Class used to parse unified diffs
+ class UnifiedDiff < Array
+ def initialize(diff, options={})
++ options.assert_valid_keys(:type, :max_lines)
+ diff_type = options[:type] || 'inline'
+
++ lines = 0
++ @truncated = false
+ diff_table = DiffTable.new(diff_type)
+ diff.each do |line|
+ if line =~ /^(---|\+\+\+) (.*)$/
+@@ -28,10 +31,17 @@
+ diff_table = DiffTable.new(diff_type)
+ end
+ diff_table.add_line line
++ lines += 1
++ if options[:max_lines] && lines > options[:max_lines]
++ @truncated = true
++ break
++ end
+ end
+ self << diff_table unless diff_table.empty?
+ self
+ end
++
++ def truncated?; @truncated; end
+ end
+
+ # Class that represents a file diff