Merge branch 'kb/preload-index-more'
Use preloadindex in more places, which has a nice speedup on systems with slow stat calls (and even on Linux). * kb/preload-index-more: update-index/diff-index: use core.preloadindex to improve performance
This commit is contained in:
commit
10022a6d02
@ -41,9 +41,13 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix)
|
|||||||
if (rev.pending.nr != 1 ||
|
if (rev.pending.nr != 1 ||
|
||||||
rev.max_count != -1 || rev.min_age != -1 || rev.max_age != -1)
|
rev.max_count != -1 || rev.min_age != -1 || rev.max_age != -1)
|
||||||
usage(diff_cache_usage);
|
usage(diff_cache_usage);
|
||||||
if (!cached)
|
if (!cached) {
|
||||||
setup_work_tree();
|
setup_work_tree();
|
||||||
if (read_cache() < 0) {
|
if (read_cache_preload(rev.diffopt.pathspec.raw) < 0) {
|
||||||
|
perror("read_cache_preload");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else if (read_cache() < 0) {
|
||||||
perror("read_cache");
|
perror("read_cache");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -130,8 +130,6 @@ static int builtin_diff_index(struct rev_info *revs,
|
|||||||
usage(builtin_diff_usage);
|
usage(builtin_diff_usage);
|
||||||
argv++; argc--;
|
argv++; argc--;
|
||||||
}
|
}
|
||||||
if (!cached)
|
|
||||||
setup_work_tree();
|
|
||||||
/*
|
/*
|
||||||
* Make sure there is one revision (i.e. pending object),
|
* Make sure there is one revision (i.e. pending object),
|
||||||
* and there is no revision filtering parameters.
|
* and there is no revision filtering parameters.
|
||||||
@ -140,10 +138,16 @@ static int builtin_diff_index(struct rev_info *revs,
|
|||||||
revs->max_count != -1 || revs->min_age != -1 ||
|
revs->max_count != -1 || revs->min_age != -1 ||
|
||||||
revs->max_age != -1)
|
revs->max_age != -1)
|
||||||
usage(builtin_diff_usage);
|
usage(builtin_diff_usage);
|
||||||
|
if (!cached) {
|
||||||
|
setup_work_tree();
|
||||||
if (read_cache_preload(revs->diffopt.pathspec.raw) < 0) {
|
if (read_cache_preload(revs->diffopt.pathspec.raw) < 0) {
|
||||||
perror("read_cache_preload");
|
perror("read_cache_preload");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
} else if (read_cache() < 0) {
|
||||||
|
perror("read_cache");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return run_diff_index(revs, cached);
|
return run_diff_index(revs, cached);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -593,6 +593,7 @@ struct refresh_params {
|
|||||||
static int refresh(struct refresh_params *o, unsigned int flag)
|
static int refresh(struct refresh_params *o, unsigned int flag)
|
||||||
{
|
{
|
||||||
setup_work_tree();
|
setup_work_tree();
|
||||||
|
read_cache_preload(NULL);
|
||||||
*o->has_errors |= refresh_cache(o->flags | flag);
|
*o->has_errors |= refresh_cache(o->flags | flag);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user