From 82793c55e45ea1c7306ff396d8ce316241e584da Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 7 Sep 2006 00:54:22 -0700 Subject: [PATCH] diff --binary generates full index on binary files. ... without --full-index. Signed-off-by: Junio C Hamano --- diff.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/diff.c b/diff.c index 9dcbda311..663886570 100644 --- a/diff.c +++ b/diff.c @@ -1588,6 +1588,12 @@ static void run_diff(struct diff_filepair *p, struct diff_options *o) if (hashcmp(one->sha1, two->sha1)) { int abbrev = o->full_index ? 40 : DEFAULT_ABBREV; + if (o->binary) { + mmfile_t mf; + if ((!fill_mmfile(&mf, one) && mmfile_is_binary(&mf)) || + (!fill_mmfile(&mf, two) && mmfile_is_binary(&mf))) + abbrev = 40; + } len += snprintf(msg + len, sizeof(msg) - len, "index %.*s..%.*s", abbrev, sha1_to_hex(one->sha1), @@ -1818,7 +1824,7 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac) options->full_index = 1; else if (!strcmp(arg, "--binary")) { options->output_format |= DIFF_FORMAT_PATCH; - options->full_index = options->binary = 1; + options->binary = 1; } else if (!strcmp(arg, "-a") || !strcmp(arg, "--text")) { options->text = 1; -- 2.26.2