mirror of
https://github.com/git-for-windows/git.git
synced 2026-04-30 17:30:36 -05:00
fixup! checkout.c: enable fscache for checkout_entry
The recently introduced speedup of `git checkout` sadly introduced a regression: after writing a file, the cached stat data is obviously incorrect, yet we still used it! This patch simply reverts the original speedup (as opposed to try to hotfix it as https://github.com/git-for-windows/git/pull/1443 tries to do), and marks it as a fixup commit so that the next merging-rebase will drop the patch. We will most likely want to speed up this code path, though, but may find a better way, e.g. by invalidating the cached data cleverly. (This will be a *little* tricky, though, as readdir() uses the data, and we must ensure that we do not pull it under readdir()'s rag when invalidating it, and we also must avoid re-caching for every written file, as that would be *even* slower than fscache=false.) This fixes https://github.com/git-for-windows/git/issues/1438 and https://github.com/git-for-windows/git/issues/1442 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
@@ -359,7 +359,6 @@ static int checkout_paths(const struct checkout_opts *opts,
|
||||
state.istate = &the_index;
|
||||
|
||||
enable_delayed_checkout(&state);
|
||||
enable_fscache(1);
|
||||
for (pos = 0; pos < active_nr; pos++) {
|
||||
struct cache_entry *ce = active_cache[pos];
|
||||
if (ce->ce_flags & CE_MATCHED) {
|
||||
@@ -374,7 +373,6 @@ static int checkout_paths(const struct checkout_opts *opts,
|
||||
pos = skip_same_name(ce, pos) - 1;
|
||||
}
|
||||
}
|
||||
enable_fscache(0);
|
||||
errs |= finish_delayed_checkout(&state);
|
||||
|
||||
if (write_locked_index(&the_index, &lock_file, COMMIT_LOCK))
|
||||
|
||||
Reference in New Issue
Block a user