From 35f075d8ad7d0ff190bcfec42e7ea061a8255e92 Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Wed, 23 Feb 2011 07:03:45 +0000 Subject: [PATCH] scm: fix diffs do not handle one line new files properly (#7618). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4929 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/unified_diff.rb | 2 +- test/unit/lib/redmine/unified_diff_test.rb | 33 +++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/lib/redmine/unified_diff.rb b/lib/redmine/unified_diff.rb index 65d880dd7..430b1254a 100644 --- a/lib/redmine/unified_diff.rb +++ b/lib/redmine/unified_diff.rb @@ -36,7 +36,7 @@ module Redmine end unless diff_table.add_line line line.force_encoding(line_encoding) if line_encoding - self << diff_table if diff_table.length > 1 + self << diff_table if diff_table.length > 0 diff_table = DiffTable.new(diff_type) end lines += 1 diff --git a/test/unit/lib/redmine/unified_diff_test.rb b/test/unit/lib/redmine/unified_diff_test.rb index 7bac78d81..e6da01c8d 100644 --- a/test/unit/lib/redmine/unified_diff_test.rb +++ b/test/unit/lib/redmine/unified_diff_test.rb @@ -60,8 +60,39 @@ DIFF assert_equal 1, diff.size end + def test_one_line_new_files + diff = Redmine::UnifiedDiff.new(<<-DIFF +diff -r 000000000000 -r ea98b14f75f0 README1 +--- /dev/null ++++ b/README1 +@@ -0,0 +1,1 @@ ++test1 +diff -r 000000000000 -r ea98b14f75f0 README2 +--- /dev/null ++++ b/README2 +@@ -0,0 +1,1 @@ ++test2 +diff -r 000000000000 -r ea98b14f75f0 README3 +--- /dev/null ++++ b/README3 +@@ -0,0 +1,3 @@ ++test4 ++test5 ++test6 +diff -r 000000000000 -r ea98b14f75f0 README4 +--- /dev/null ++++ b/README4 +@@ -0,0 +1,3 @@ ++test4 ++test5 ++test6 +DIFF + ) + assert_equal 4, diff.size + end + private - + def read_diff_fixture(filename) File.new(File.join(File.dirname(__FILE__), '/../../../fixtures/diffs', filename)).read end