OSDN Git Service

scm: fix diffs do not handle one line new files properly (#7618).
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Wed, 23 Feb 2011 07:03:45 +0000 (07:03 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Wed, 23 Feb 2011 07:03:45 +0000 (07:03 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4929 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/unified_diff.rb
test/unit/lib/redmine/unified_diff_test.rb

index 65d880d..430b125 100644 (file)
@@ -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
index 7bac78d..e6da01c 100644 (file)
@@ -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