format-patch: do not let its diff-options affect --range-diff
Stop leaking how the primary output of format-patch is customized to
the range-diff machinery and instead let the latter use its own
"reasonable default", in order to correct the breakage introduced by
a5170794 ("Merge branch 'ab/range-diff-no-patch'", 2018-11-18) on
the 'master' front.  "git format-patch --range-diff..." without any
weird diff option started to include the "range-diff --stat" output,
which is rather useless right now, that made the whole thing
unusable and this is probably the least disruptive way to whip the
codebase into a shippable shape.
We may want to later make the range-diff driven by format-patch more
configurable, but that would have to wait until we have a good
design.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
			
			
				maint
			
			
		
							parent
							
								
									7068cbc4ab
								
							
						
					
					
						commit
						d8981c3f88
					
				|  | @ -250,6 +250,11 @@ feeding the result to `git send-email`. | ||||||
| 	feature/v2`), or a revision range if the two versions of the series are | 	feature/v2`), or a revision range if the two versions of the series are | ||||||
| 	disjoint (for example `git format-patch --cover-letter | 	disjoint (for example `git format-patch --cover-letter | ||||||
| 	--range-diff=feature/v1~3..feature/v1 -3 feature/v2`). | 	--range-diff=feature/v1~3..feature/v1 -3 feature/v2`). | ||||||
|  | + | ||||||
|  | Note that diff options passed to the command affect how the primary | ||||||
|  | product of `format-patch` is generated, and they are not passed to | ||||||
|  | the underlying `range-diff` machinery used to generate the cover-letter | ||||||
|  | material (this may change in the future). | ||||||
|  |  | ||||||
| --creation-factor=<percent>:: | --creation-factor=<percent>:: | ||||||
| 	Used with `--range-diff`, tweak the heuristic which matches up commits | 	Used with `--range-diff`, tweak the heuristic which matches up commits | ||||||
|  |  | ||||||
|  | @ -1096,7 +1096,7 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout, | ||||||
| 	if (rev->rdiff1) { | 	if (rev->rdiff1) { | ||||||
| 		fprintf_ln(rev->diffopt.file, "%s", rev->rdiff_title); | 		fprintf_ln(rev->diffopt.file, "%s", rev->rdiff_title); | ||||||
| 		show_range_diff(rev->rdiff1, rev->rdiff2, | 		show_range_diff(rev->rdiff1, rev->rdiff2, | ||||||
| 				rev->creation_factor, 1, &rev->diffopt); | 				rev->creation_factor, 1, NULL); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @ -762,7 +762,7 @@ void show_log(struct rev_info *opt) | ||||||
| 		next_commentary_block(opt, NULL); | 		next_commentary_block(opt, NULL); | ||||||
| 		fprintf_ln(opt->diffopt.file, "%s", opt->rdiff_title); | 		fprintf_ln(opt->diffopt.file, "%s", opt->rdiff_title); | ||||||
| 		show_range_diff(opt->rdiff1, opt->rdiff2, | 		show_range_diff(opt->rdiff1, opt->rdiff2, | ||||||
| 				opt->creation_factor, 1, &opt->diffopt); | 				opt->creation_factor, 1, NULL); | ||||||
|  |  | ||||||
| 		memcpy(&diff_queued_diff, &dq, sizeof(diff_queued_diff)); | 		memcpy(&diff_queued_diff, &dq, sizeof(diff_queued_diff)); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -460,7 +460,11 @@ int show_range_diff(const char *range1, const char *range2, | ||||||
| 		struct diff_options opts; | 		struct diff_options opts; | ||||||
| 		struct strbuf indent = STRBUF_INIT; | 		struct strbuf indent = STRBUF_INIT; | ||||||
|  |  | ||||||
|  | 		if (diffopt) | ||||||
| 			memcpy(&opts, diffopt, sizeof(opts)); | 			memcpy(&opts, diffopt, sizeof(opts)); | ||||||
|  | 		else | ||||||
|  | 			diff_setup(&opts); | ||||||
|  |  | ||||||
| 		if (!opts.output_format) | 		if (!opts.output_format) | ||||||
| 			opts.output_format = DIFF_FORMAT_PATCH; | 			opts.output_format = DIFF_FORMAT_PATCH; | ||||||
| 		opts.flags.suppress_diff_headers = 1; | 		opts.flags.suppress_diff_headers = 1; | ||||||
|  |  | ||||||
|  | @ -5,6 +5,11 @@ | ||||||
|  |  | ||||||
| #define RANGE_DIFF_CREATION_FACTOR_DEFAULT 60 | #define RANGE_DIFF_CREATION_FACTOR_DEFAULT 60 | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Compare series of commmits in RANGE1 and RANGE2, and emit to the | ||||||
|  |  * standard output.  NULL can be passed to DIFFOPT to use the built-in | ||||||
|  |  * default. | ||||||
|  |  */ | ||||||
| int show_range_diff(const char *range1, const char *range2, | int show_range_diff(const char *range1, const char *range2, | ||||||
| 		    int creation_factor, int dual_color, | 		    int creation_factor, int dual_color, | ||||||
| 		    struct diff_options *diffopt); | 		    struct diff_options *diffopt); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano