diff options
author | Johan Sørensen <johan@johansorensen.com> | 2009-03-12 13:11:29 +0100 |
---|---|---|
committer | Johan Sørensen <johan@johansorensen.com> | 2009-04-22 15:16:23 +0200 |
commit | 7f2d5e93ff5d6749cd97f423817a871dd4c9c6e3 (patch) | |
tree | 48ef7b6bef5423bcc52c45d36b861d2cd492e89b /vendor/diff-display | |
parent | 60d273f8704e655fcabe8aabb28a0051aed8181b (diff) | |
download | gitorious-mainline-outdated-7f2d5e93ff5d6749cd97f423817a871dd4c9c6e3.zip gitorious-mainline-outdated-7f2d5e93ff5d6749cd97f423817a871dd4c9c6e3.tar.gz gitorious-mainline-outdated-7f2d5e93ff5d6749cd97f423817a871dd4c9c6e3.tar.bz2 |
Updated Diff::Display to not mark complete-rewrite lines as having inline diffs
Diffstat (limited to 'vendor/diff-display')
-rw-r--r-- | vendor/diff-display/lib/diff/display/unified/generator.rb | 18 | ||||
-rw-r--r-- | vendor/diff-display/test/fixtures/simple_rewrite.diff | 8 | ||||
-rw-r--r-- | vendor/diff-display/test/test_datastructure.rb | 11 | ||||
-rw-r--r-- | vendor/diff-display/test/test_generator.rb | 16 |
4 files changed, 46 insertions, 7 deletions
diff --git a/vendor/diff-display/lib/diff/display/unified/generator.rb b/vendor/diff-display/lib/diff/display/unified/generator.rb index 91b1d16..2107ed9 100644 --- a/vendor/diff-display/lib/diff/display/unified/generator.rb +++ b/vendor/diff-display/lib/diff/display/unified/generator.rb @@ -135,13 +135,17 @@ module Diff::Display def process_lines_with_differences(oldline, newline) start, ending = get_change_extent(oldline, newline) - # - - line = inline_diff(oldline, start, ending) - process_line(line, :rem, true) - - # + - line = inline_diff(newline, start, ending) - process_line(line, :add, true) + if start.zero? && ending.zero? + process_line(oldline, :rem, false) # - + process_line(newline, :add, false) # + + else + # - + line = inline_diff(oldline, start, ending) + process_line(line, :rem, true) + # + + line = inline_diff(newline, start, ending) + process_line(line, :add, true) + end end # Inserts string formating characters around the section of a string diff --git a/vendor/diff-display/test/fixtures/simple_rewrite.diff b/vendor/diff-display/test/fixtures/simple_rewrite.diff new file mode 100644 index 0000000..d7a7cff --- /dev/null +++ b/vendor/diff-display/test/fixtures/simple_rewrite.diff @@ -0,0 +1,8 @@ +diff --git a/text.txt b/text.txt +index 7b57bd2..7010a82 100644 +--- a/text.txt ++++ b/text.txt +@@ -1 +1 @@ +-some text ++asdasdsa +\ No newline at end of file diff --git a/vendor/diff-display/test/test_datastructure.rb b/vendor/diff-display/test/test_datastructure.rb index 6073010..1a1d29d 100644 --- a/vendor/diff-display/test/test_datastructure.rb +++ b/vendor/diff-display/test/test_datastructure.rb @@ -53,6 +53,17 @@ class TestDatastructure < Test::Unit::TestCase assert_equal :nonewline, Diff::Display::Line.nonewline("foo").identifier end + def test_expands_inline_changes + line = Diff::Display::AddLine.new('the \\0quick \\1brown fox', 42, true) + expanded = line.expand_inline_changes_with("START", "END") + assert_equal "the STARTquick ENDbrown fox", expanded.to_s + end + + def test_segments + line = Diff::Display::AddLine.new('the \\0quick \\1brown fox', 42, true) + assert_equal ["the ", "quick ", "brown fox"], line.segments + end + # Block def test_block_behaves_like_an_array block = Diff::Display::Block.new diff --git a/vendor/diff-display/test/test_generator.rb b/vendor/diff-display/test/test_generator.rb index 09f6b60..bc5b73a 100644 --- a/vendor/diff-display/test/test_generator.rb +++ b/vendor/diff-display/test/test_generator.rb @@ -108,7 +108,23 @@ class TestGenerator < Test::Unit::TestCase ] assert_equal expected, line_numbers_for(:simple) end + + def test_rewrite_line_does_not_set_inline_changes + diff_data = load_diff("simple_rewrite") + data = Diff::Display::Unified::Generator.run(diff_data) + + assert_equal diff_data.chomp, data.to_diff + modblock = data[5] + assert_instance_of Diff::Display::ModBlock, modblock + + assert_instance_of Diff::Display::RemLine, rem = modblock[0] + assert_instance_of Diff::Display::AddLine, add = modblock[1] + + assert !rem.inline_changes?, "rem has inline changes" + assert !add.inline_changes?, "add has inline_changes" + end + protected def line_numbers_for(diff) diff_data = load_diff(diff) data = Diff::Display::Unified::Generator.run(diff_data) |