Skip to content

Commit

Permalink
diff --stat: make sure to set recursive.
Browse files Browse the repository at this point in the history
Just like "patch" format always needs recursive, "diffstat"
format does not make sense without setting recursive.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Apr 18, 2006
1 parent 08ddd4f commit f56ef54
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 5 deletions.
3 changes: 0 additions & 3 deletions diff-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,6 @@ int main(int argc, const char **argv)
if (opt->dense_combined_merges)
opt->diffopt.output_format = DIFF_FORMAT_PATCH;

if (opt->diffopt.output_format == DIFF_FORMAT_PATCH)
opt->diffopt.recursive = 1;

diff_tree_setup_paths(get_pathspec(prefix, argv), &opt->diffopt);
diff_setup_done(&opt->diffopt);

Expand Down
10 changes: 10 additions & 0 deletions diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -1029,6 +1029,16 @@ int diff_setup_done(struct diff_options *options)
options->detect_rename != DIFF_DETECT_COPY) ||
(0 <= options->rename_limit && !options->detect_rename))
return -1;

/*
* These cases always need recursive; we do not drop caller-supplied
* recursive bits for other formats here.
*/
if ((options->output_format == DIFF_FORMAT_PATCH) ||
(options->output_format == DIFF_FORMAT_DIFFSTAT) ||
(options->with_stat))
options->recursive = 1;

if (options->detect_rename && options->rename_limit < 0)
options->rename_limit = diff_rename_limit_default;
if (options->setup & DIFF_SETUP_USE_CACHE) {
Expand Down
2 changes: 0 additions & 2 deletions git.c
Original file line number Diff line number Diff line change
Expand Up @@ -344,8 +344,6 @@ static int cmd_log(int argc, const char **argv, char **envp)
opt.ignore_merges = 0;
if (opt.dense_combined_merges)
opt.diffopt.output_format = DIFF_FORMAT_PATCH;
if (opt.diffopt.output_format == DIFF_FORMAT_PATCH)
opt.diffopt.recursive = 1;
if (!full_diff && rev.prune_data)
diff_tree_setup_paths(rev.prune_data, &opt.diffopt);
diff_setup_done(&opt.diffopt);
Expand Down

0 comments on commit f56ef54

Please sign in to comment.