diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-12-07 15:21:40 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-12-07 15:21:40 +0000 |
commit | fec86a9ce100dec444872993c792fa99cc489b96 (patch) | |
tree | c0455d3f83558cdea85dd621a20c6f6910d4d7f0 /test/fixtures/diffs | |
parent | 02acc7fc28dc868757ccb48b224b8bee3429bff7 (diff) | |
download | redmine-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.diff | 79 |
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 |