bisect: use string arguments to feed internal diff-tree

Commit e22278c0a0 (bisect: display first bad commit without forking a new process, 2009-05-28) converted our external call to diff-tree to an internal use of the log_tree_commit(). But rather than individually setting options in the rev_info struct (and explaining in comments how they map to command-line options), we can just pass the command-line options to setup_revisions(). This is shorter, easier to change, and less likely to break if revision.c internals change. Note that we unconditionally set the output format to "raw". The conditional in the original code didn't actually do anything useful, since nobody had an opportunity to set the format to anything. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Feb 22, 2019 at 01:20 UTC 2008f29093ba46e513ca2af7f14f3b75faa7a358
1 file changed +4 -13
bisect.c
+4 -13
@@ -896,24 +896,15 @@ static void show_diff_tree(struct repository *r,
896 const char *prefix,
897 struct commit *commit)
898 {
899 + const char *argv[] = {
900 + "diff-tree", "--pretty", "--no-abbrev", "--raw", NULL
901 + };
902 struct rev_info opt;
903
901 - /* diff-tree init */
904 repo_init_revisions(r, &opt, prefix);
905 git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
904 - opt.abbrev = 0;
905 - opt.diff = 1;
906
907 - /* This is what "--pretty" does */
908 - opt.verbose_header = 1;
909 - opt.use_terminator = 0;
910 - opt.commit_format = CMIT_FMT_DEFAULT;
911 -
912 - /* diff-tree init */
913 - if (!opt.diffopt.output_format)
914 - opt.diffopt.output_format = DIFF_FORMAT_RAW;
915 -
916 - setup_revisions(0, NULL, &opt, NULL);
907 + setup_revisions(ARRAY_SIZE(argv) - 1, argv, &opt, NULL);
908 log_tree_commit(&opt, commit);
909 }
910