tree-walk.c: make tree_entry_interesting() take an index
In order to support :(attr) when matching pathspec on a tree,
tree_entry_interesting() needs to take an index (because
git_check_attr() needs it). This is the preparation step for it. This
also makes it clearer what index we fall back to when looking up
attributes during an unpack-trees operation: the source index.
This also fixes revs->pruning.repo initialization that should have
been done in 2abf350385 (revision.c: remove implicit dependency on
the_index - 2018-09-21). Without it, skip_uninteresting() will
dereference a NULL pointer through this call chain
get_revision(revs)
get_revision_internal
get_revision_1
try_to_simplify_commit
rev_compare_tree
diff_tree_oid(..., &revs->pruning)
ll_diff_tree_oid
diff_tree_paths
ll_diff_tree
skip_uninteresting
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
e092073d64
commit
67022e0214
@@ -299,7 +299,8 @@ static void skip_uninteresting(struct tree_desc *t, struct strbuf *base,
|
||||
enum interesting match;
|
||||
|
||||
while (t->size) {
|
||||
match = tree_entry_interesting(&t->entry, base, 0, &opt->pathspec);
|
||||
match = tree_entry_interesting(opt->repo->index, &t->entry,
|
||||
base, 0, &opt->pathspec);
|
||||
if (match) {
|
||||
if (match == all_entries_not_interesting)
|
||||
t->size = 0;
|
||||
|
||||
Reference in New Issue
Block a user