Merge branch 'lt/maint-diff-reduce-lstat' into maint
* lt/maint-diff-reduce-lstat: Teach 'git checkout' to preload the index contents Avoid unnecessary 'lstat()' calls in 'get_stat_data()'
This commit is contained in:
commit
5e04a1ee33
@ -216,7 +216,7 @@ static int checkout_paths(struct tree *source_tree, const char **pathspec,
|
|||||||
struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file));
|
struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file));
|
||||||
|
|
||||||
newfd = hold_locked_index(lock_file, 1);
|
newfd = hold_locked_index(lock_file, 1);
|
||||||
if (read_cache() < 0)
|
if (read_cache_preload(pathspec) < 0)
|
||||||
return error("corrupt index file");
|
return error("corrupt index file");
|
||||||
|
|
||||||
if (source_tree)
|
if (source_tree)
|
||||||
@ -366,7 +366,7 @@ static int merge_working_tree(struct checkout_opts *opts,
|
|||||||
struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file));
|
struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file));
|
||||||
int newfd = hold_locked_index(lock_file, 1);
|
int newfd = hold_locked_index(lock_file, 1);
|
||||||
|
|
||||||
if (read_cache() < 0)
|
if (read_cache_preload(NULL) < 0)
|
||||||
return error("corrupt index file");
|
return error("corrupt index file");
|
||||||
|
|
||||||
if (opts->force) {
|
if (opts->force) {
|
||||||
|
@ -214,7 +214,7 @@ static int get_stat_data(struct cache_entry *ce,
|
|||||||
const unsigned char *sha1 = ce->sha1;
|
const unsigned char *sha1 = ce->sha1;
|
||||||
unsigned int mode = ce->ce_mode;
|
unsigned int mode = ce->ce_mode;
|
||||||
|
|
||||||
if (!cached) {
|
if (!cached && !ce_uptodate(ce)) {
|
||||||
int changed;
|
int changed;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
changed = check_removed(ce, &st);
|
changed = check_removed(ce, &st);
|
||||||
|
Loading…
Reference in New Issue
Block a user