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 ||
|
||||
rev.max_count != -1 || rev.min_age != -1 || rev.max_age != -1)
|
||||
usage(diff_cache_usage);
|
||||
if (!cached)
|
||||
if (!cached) {
|
||||
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");
|
||||
return -1;
|
||||
}
|
||||
|
@ -130,8 +130,6 @@ static int builtin_diff_index(struct rev_info *revs,
|
||||
usage(builtin_diff_usage);
|
||||
argv++; argc--;
|
||||
}
|
||||
if (!cached)
|
||||
setup_work_tree();
|
||||
/*
|
||||
* Make sure there is one revision (i.e. pending object),
|
||||
* and there is no revision filtering parameters.
|
||||
@ -140,8 +138,14 @@ static int builtin_diff_index(struct rev_info *revs,
|
||||
revs->max_count != -1 || revs->min_age != -1 ||
|
||||
revs->max_age != -1)
|
||||
usage(builtin_diff_usage);
|
||||
if (read_cache_preload(revs->diffopt.pathspec.raw) < 0) {
|
||||
perror("read_cache_preload");
|
||||
if (!cached) {
|
||||
setup_work_tree();
|
||||
if (read_cache_preload(revs->diffopt.pathspec.raw) < 0) {
|
||||
perror("read_cache_preload");
|
||||
return -1;
|
||||
}
|
||||
} else if (read_cache() < 0) {
|
||||
perror("read_cache");
|
||||
return -1;
|
||||
}
|
||||
return run_diff_index(revs, cached);
|
||||
|
@ -593,6 +593,7 @@ struct refresh_params {
|
||||
static int refresh(struct refresh_params *o, unsigned int flag)
|
||||
{
|
||||
setup_work_tree();
|
||||
read_cache_preload(NULL);
|
||||
*o->has_errors |= refresh_cache(o->flags | flag);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user