diff: reuse diff setup for --no-index case
commit287ab28bfae14431f3f57abeb92149c460044850
authorJeff King <peff@peff.net>
Sat, 16 Feb 2019 06:57:56 +0000 (16 01:57 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sun, 24 Feb 2019 15:08:34 +0000 (24 07:08 -0800)
tree0141e02aa7e1208c68484d960e96121b5ddcc946
parent0d0ac3826a3bbb9247e39e12623bbcfdd722f24c
diff: reuse diff setup for --no-index case

When "--no-index" is in effect (or implied by the arguments), git-diff
jumps early to a special code path to perform that diff. This means we
miss out on some settings like enabling --ext-diff and --textconv by
default.

Let's jump to the no-index path _after_ we've done more setup on
rev.diffopt. Since some of the options don't affect us (e.g., items
related to the index), let's re-order the setup into two blocks (see the
in-code comments).

Note that we also need to stop re-initializing the diffopt struct in
diff_no_index(). This should not be necessary, as it will already have
been initialized by cmd_diff() (and there are no other callers). That in
turn lets us drop the "repository" argument from diff_no_index (which
never made much sense, since the whole point is that you don't need a
repository).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/diff.c
diff-no-index.c
diff.h
t/t4053-diff-no-index.sh