Merge branch 'jc/diff-tree-stdin-fix'
"diff-tree --stdin" has been broken for about a year, but 2.36 release broke it even worse by breaking running the command with <pathspec>, which in turn broke "gitk" and got noticed. This has been corrected by aligning its behaviour to that of "log". * jc/diff-tree-stdin-fix: 2.36 gitk/diff-tree --stdin regression fixmaint
						commit
						3da993f2e6
					
				|  | @ -195,6 +195,7 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix) | |||
| 		int saved_dcctc = 0; | ||||
|  | ||||
| 		opt->diffopt.rotate_to_strict = 0; | ||||
| 		opt->diffopt.no_free = 1; | ||||
| 		if (opt->diffopt.detect_rename) { | ||||
| 			if (!the_index.cache) | ||||
| 				repo_read_index(the_repository); | ||||
|  | @ -217,6 +218,8 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix) | |||
| 		} | ||||
| 		opt->diffopt.degraded_cc_to_c = saved_dcctc; | ||||
| 		opt->diffopt.needed_rename_limit = saved_nrl; | ||||
| 		opt->diffopt.no_free = 0; | ||||
| 		diff_free(&opt->diffopt); | ||||
| 	} | ||||
|  | ||||
| 	return diff_result_code(&opt->diffopt, 0); | ||||
|  |  | |||
|  | @ -1098,6 +1098,7 @@ int log_tree_commit(struct rev_info *opt, struct commit *commit) | |||
| 	opt->loginfo = &log; | ||||
| 	opt->diffopt.no_free = 1; | ||||
|  | ||||
| 	/* NEEDSWORK: no restoring of no_free?  Why? */ | ||||
| 	if (opt->line_level_traverse) | ||||
| 		return line_log_print(opt, commit); | ||||
|  | ||||
|  |  | |||
|  | @ -542,6 +542,20 @@ test_expect_success 'diff-tree --stdin with log formatting' ' | |||
| 	test_cmp expect actual | ||||
| ' | ||||
|  | ||||
| test_expect_success 'diff-tree --stdin with pathspec' ' | ||||
| 	cat >expect <<-EOF && | ||||
| 	Third | ||||
|  | ||||
| 	dir/sub | ||||
| 	Second | ||||
|  | ||||
| 	dir/sub | ||||
| 	EOF | ||||
| 	git rev-list master^ | | ||||
| 	git diff-tree -r --stdin --name-only --format=%s dir >actual && | ||||
| 	test_cmp expect actual | ||||
| ' | ||||
|  | ||||
| test_expect_success 'diff -I<regex>: setup' ' | ||||
| 	git checkout master && | ||||
| 	test_seq 50 >file0 && | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano