summaryrefslogtreecommitdiff
path: root/builtin/push.c
diff options
context:
space:
mode:
authorLibravatar Jeff Hostetler <jeffhost@microsoft.com>2017-02-10 16:10:39 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-02-10 14:44:18 -0800
commite596acc23a8c92784349da613502626d758215b2 (patch)
tree1e4fb0e5beb5d2a89e9c027d7c30ca1c4250a97f /builtin/push.c
parentGit 2.11.1 (diff)
downloadtgif-e596acc23a8c92784349da613502626d758215b2.tar.xz
preload-index: avoid lstat for skip-worktree items
Teach preload-index to avoid lstat() calls for index-entries with skip-worktree bit set. This is a performance optimization. During a sparse-checkout, the skip-worktree bit is set on items that were not populated and therefore are not present in the worktree. The per-thread preload-index loop performs a series of tests on each index-entry as it attempts to compare the worktree version with the index and mark them up-to-date. This patch short-cuts that work. On a Windows 10 system with a very large repo (450MB index) and various levels of sparseness, performance was improved in the {preloadindex=true, fscache=false} case by 80% and in the {preloadindex=true, fscache=true} case by 20% for various commands. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/push.c')
0 files changed, 0 insertions, 0 deletions