|
|
|
@ -70,7 +70,7 @@ static int match_stat_with_submodule(struct diff_options *diffopt,
@@ -70,7 +70,7 @@ static int match_stat_with_submodule(struct diff_options *diffopt,
|
|
|
|
|
struct stat *st, unsigned ce_option, |
|
|
|
|
unsigned *dirty_submodule) |
|
|
|
|
{ |
|
|
|
|
int changed = ce_match_stat(ce, st, ce_option); |
|
|
|
|
int changed = ie_match_stat(diffopt->repo->index, ce, st, ce_option); |
|
|
|
|
if (S_ISGITLINK(ce->ce_mode)) { |
|
|
|
|
struct diff_flags orig_flags = diffopt->flags; |
|
|
|
|
if (!diffopt->flags.override_submodule_config) |
|
|
|
@ -93,15 +93,16 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
@@ -93,15 +93,16 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
|
|
|
|
|
unsigned ce_option = ((option & DIFF_RACY_IS_MODIFIED) |
|
|
|
|
? CE_MATCH_RACY_IS_DIRTY : 0); |
|
|
|
|
uint64_t start = getnanotime(); |
|
|
|
|
struct index_state *istate = revs->diffopt.repo->index; |
|
|
|
|
|
|
|
|
|
diff_set_mnemonic_prefix(&revs->diffopt, "i/", "w/"); |
|
|
|
|
|
|
|
|
|
if (diff_unmerged_stage < 0) |
|
|
|
|
diff_unmerged_stage = 2; |
|
|
|
|
entries = active_nr; |
|
|
|
|
entries = istate->cache_nr; |
|
|
|
|
for (i = 0; i < entries; i++) { |
|
|
|
|
unsigned int oldmode, newmode; |
|
|
|
|
struct cache_entry *ce = active_cache[i]; |
|
|
|
|
struct cache_entry *ce = istate->cache[i]; |
|
|
|
|
int changed; |
|
|
|
|
unsigned dirty_submodule = 0; |
|
|
|
|
const struct object_id *old_oid, *new_oid; |
|
|
|
@ -109,7 +110,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
@@ -109,7 +110,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
|
|
|
|
|
if (diff_can_quit_early(&revs->diffopt)) |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
if (!ce_path_match(&the_index, ce, &revs->prune_data, NULL)) |
|
|
|
|
if (!ce_path_match(istate, ce, &revs->prune_data, NULL)) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
if (ce_stage(ce)) { |
|
|
|
@ -145,7 +146,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
@@ -145,7 +146,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
|
|
|
|
|
dpath->mode = wt_mode; |
|
|
|
|
|
|
|
|
|
while (i < entries) { |
|
|
|
|
struct cache_entry *nce = active_cache[i]; |
|
|
|
|
struct cache_entry *nce = istate->cache[i]; |
|
|
|
|
int stage; |
|
|
|
|
|
|
|
|
|
if (strcmp(ce->name, nce->name)) |
|
|
|
@ -474,7 +475,9 @@ static int oneway_diff(const struct cache_entry * const *src,
@@ -474,7 +475,9 @@ static int oneway_diff(const struct cache_entry * const *src,
|
|
|
|
|
if (tree == o->df_conflict_entry) |
|
|
|
|
tree = NULL; |
|
|
|
|
|
|
|
|
|
if (ce_path_match(&the_index, idx ? idx : tree, &revs->prune_data, NULL)) { |
|
|
|
|
if (ce_path_match(revs->diffopt.repo->index, |
|
|
|
|
idx ? idx : tree, |
|
|
|
|
&revs->prune_data, NULL)) { |
|
|
|
|
do_oneway_diff(o, idx, tree); |
|
|
|
|
if (diff_can_quit_early(&revs->diffopt)) { |
|
|
|
|
o->exiting_early = 1; |
|
|
|
@ -506,7 +509,7 @@ static int diff_cache(struct rev_info *revs,
@@ -506,7 +509,7 @@ static int diff_cache(struct rev_info *revs,
|
|
|
|
|
opts.merge = 1; |
|
|
|
|
opts.fn = oneway_diff; |
|
|
|
|
opts.unpack_data = revs; |
|
|
|
|
opts.src_index = &the_index; |
|
|
|
|
opts.src_index = revs->diffopt.repo->index; |
|
|
|
|
opts.dst_index = NULL; |
|
|
|
|
opts.pathspec = &revs->diffopt.pathspec; |
|
|
|
|
opts.pathspec->recursive = 1; |
|
|
|
|