From: Junio C Hamano Date: Mon, 24 Sep 2018 17:30:53 +0000 (-0700) Subject: Merge branch 'tg/range-diff-corner-case-fix' X-Git-Tag: v2.20.0-rc0~204 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/51bbcda1c7f44f42055a032ed394dedeca6df954?hp=-c Merge branch 'tg/range-diff-corner-case-fix' Recently added "range-diff" had a corner-case bug to cause it segfault, which has been corrected. * tg/range-diff-corner-case-fix: linear-assignment: fix potential out of bounds memory access --- 51bbcda1c7f44f42055a032ed394dedeca6df954 diff --combined t/t3206-range-diff.sh index d481f29259,fb4c13a84a..045aca1c18 --- a/t/t3206-range-diff.sh +++ b/t/t3206-range-diff.sh @@@ -122,6 -122,6 +122,11 @@@ test_expect_success 'changed commit' test_cmp expected actual ' ++test_expect_success 'no commits on one side' ' ++ git commit --amend -m "new message" && ++ git range-diff master HEAD@{1} HEAD ++' ++ test_expect_success 'changed message' ' git range-diff --no-color topic...changed-message >actual && sed s/Z/\ /g >expected <<-EOF && @@@ -133,69 -133,18 +138,69 @@@ Z + Also a silly comment here! + - Zdiff --git a/file b/file - Z--- a/file - Z+++ b/file + Z diff --git a/file b/file + Z --- a/file + Z +++ b/file 3: 147e64e = 3: b9cb956 s/11/B/ 4: a63e992 = 4: 8add5f1 s/12/B/ EOF test_cmp expected actual ' -test_expect_success 'no commits on one side' ' - git commit --amend -m "new message" && - git range-diff master HEAD@{1} HEAD +test_expect_success 'dual-coloring' ' + sed -e "s|^:||" >expect <<-\EOF && + :1: a4b3333 = 1: f686024 s/5/A/ + :2: f51d370 ! 2: 4ab067d s/4/A/ + : @@ -2,6 +2,8 @@ + : + : s/4/A/ + : + : + Also a silly comment here! + : + + : diff --git a/file b/file + : --- a/file + : +++ b/file + :3: 0559556 ! 3: b9cb956 s/11/B/ + : @@ -10,7 +10,7 @@ + : 9 + : 10 + : -11 + : -+BB + : ++B + : 12 + : 13 + : 14 + :4: d966c5c ! 4: 8add5f1 s/12/B/ + : @@ -8,7 +8,7 @@ + : @@ + : 9 + : 10 + : - BB + : + B + : -12 + : +B + : 13 + EOF + git range-diff changed...changed-message --color --dual-color >actual.raw && + test_decode_color >actual actual && + grep "= 1: .* s/5/A" actual && + grep "= 2: .* s/4/A" actual && + grep "= 3: .* s/11/B" actual && + grep "= 4: .* s/12/B" actual + ' +done + +test_expect_success 'format-patch --range-diff as commentary' ' + git format-patch --stdout --range-diff=HEAD~1 HEAD~1 >actual && + test_i18ngrep "^Range-diff:$" actual ' test_done