зеркало из https://github.com/microsoft/git.git
Merge branch 'jc/diff-tree-stdin-fix' into maint
"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". This fixes a regression in 2.36 and is slate to go to 2.36.1 source: <xmqq7d7bsu2n.fsf@gitster.g> * jc/diff-tree-stdin-fix: 2.36 gitk/diff-tree --stdin regression fix
This commit is contained in:
Коммит
8e5c46e315
|
@ -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 &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче