]> git.ipfire.org Git - thirdparty/git.git/commit - log-tree.c
range-diff: always pass at least minimal diff options
authorMartin Ågren <martin.agren@gmail.com>
Mon, 3 Dec 2018 21:21:31 +0000 (16:21 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 4 Dec 2018 01:36:14 +0000 (10:36 +0900)
commitac0edf1f46fcf9b9f6f1156e555bdf740cd56c5f
treea193ede10eb5daf1045f2bb05a49cfb21d163a10
parentd8981c3f885ceaddfec0e545b0f995b96e5ec58f
range-diff: always pass at least minimal diff options

Commit d8981c3f88 ("format-patch: do not let its diff-options affect
--range-diff", 2018-11-30) taught `show_range_diff()` to accept a
NULL-pointer as an indication that it should use its own "reasonable
default". That fixed a regression from a5170794 ("Merge branch
'ab/range-diff-no-patch'", 2018-11-18), but unfortunately it introduced
a regression of its own.

In particular, it means we forget the `file` member of the diff options,
so rather than placing a range-diff in the cover-letter, we write it to
stdout. In order to fix this, rewrite the two callers adjusted by
d8981c3f88 to instead create a "dummy" set of diff options where they
only fill in the fields we absolutely require, such as output file and
color.

Modify and extend the existing tests to try and verify that the right
contents end up in the right place.

Don't revert `show_range_diff()`, i.e., let it keep accepting NULL.
Rather than removing what is dead code and figuring out it isn't
actually dead and we've broken 2.20, just leave it for now.

[es: retain diff coloring when going to stdout]

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/log.c
log-tree.c
t/t3206-range-diff.sh