Jeff Hostetler
cc29af6d36
add: use preload-index and fscache for performance
...
Teach "add" to use preload-index and fscache features
to improve performance on very large repositories.
During an "add", a call is made to run_diff_files()
which calls check_remove() for each index-entry. This
calls lstat(). On Windows, the fscache code intercepts
the lstat() calls and builds a private cache using the
FindFirst/FindNext routines, which are much faster.
Somewhat independent of this, is the preload-index code
which distributes some of the start-up costs across
multiple threads.
We need to keep the call to read_cache() before parsing the
pathspecs (and hence cannot use the pathspecs to limit any preload)
because parse_pathspec() is using the index to determine whether a
pathspec is, in fact, in a submodule. If we would not read the index
first, parse_pathspec() would not error out on a path that is inside
a submodule, and t7400-submodule-basic.sh would fail with
not ok 47 - do not add files from a submodule
We still want the nice preload performance boost, though, so we simply
call read_cache_preload(&pathspecs) after parsing the pathspecs.
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2026-01-22 18:00:51 +01:00
..
2026-01-22 18:00:51 +01:00
2025-09-16 13:37:03 -07:00
2024-10-25 14:02:36 -04:00
2025-07-01 14:58:24 -07:00
2024-10-11 09:37:18 -07:00
2025-09-24 11:53:50 -07:00
2025-11-19 10:55:39 -08:00
2025-12-05 14:49:56 +09:00
2025-12-03 00:16:05 -08:00
2025-04-15 08:24:35 -07:00
2024-12-13 07:33:36 -08:00
2026-01-21 08:29:00 -08:00
2025-07-23 08:15:18 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-01-17 13:30:03 -08:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2026-01-06 16:33:52 +09:00
2026-01-22 14:34:23 +01:00
2025-11-19 17:41:03 -08:00
2025-07-23 08:15:18 -07:00
2025-10-22 10:40:11 -07:00
2025-07-23 08:15:22 -07:00
2026-01-22 18:00:51 +01:00
2025-12-05 14:49:59 +09:00
2025-10-16 14:42:39 -07:00
2025-07-23 08:15:20 -07:00
2026-01-22 14:34:36 +01:00
2025-07-23 08:15:20 -07:00
2025-07-23 08:15:22 -07:00
2025-12-29 22:02:54 +09:00
2025-04-15 08:24:35 -07:00
2025-07-23 08:15:18 -07:00
2025-07-23 08:15:18 -07:00
2025-03-03 08:17:47 -08:00
2025-07-23 08:15:18 -07:00
2025-08-09 17:22:01 -07:00
2025-07-01 14:46:38 -07:00
2025-12-05 14:49:58 +09:00
2026-01-09 06:40:07 -08:00
2025-06-04 08:52:25 -07:00
2025-12-23 11:33:17 +09:00
2025-08-11 09:19:40 -07:00
2025-08-22 13:13:20 -07:00
2024-12-06 20:20:04 +09:00
2026-01-21 08:28:58 -08:00
2025-07-23 08:15:22 -07:00
2026-01-07 09:16:50 +09:00
2025-01-17 13:30:03 -08:00
2026-01-09 06:40:07 -08:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2026-01-15 13:02:38 -08:00
2026-01-09 06:40:07 -08:00
2025-04-24 17:25:34 -07:00
2025-07-23 08:15:22 -07:00
2025-12-23 11:33:16 +09:00
2025-12-25 08:29:27 +09:00
2025-09-08 14:54:35 -07:00
2025-11-04 07:32:25 -08:00
2025-09-10 14:29:49 -07:00
2024-12-18 10:44:31 -08:00
2025-01-17 13:30:03 -08:00
2025-07-23 08:15:22 -07:00
2025-08-05 11:53:55 -07:00
2025-01-17 13:30:03 -08:00
2025-01-17 13:30:03 -08:00
2025-08-08 11:13:12 -07:00
2025-08-21 13:47:00 -07:00
2025-09-18 10:07:00 -07:00
2025-08-05 11:53:55 -07:00
2025-07-16 22:16:15 -07:00
2025-09-12 10:41:18 -07:00
2025-07-23 08:15:18 -07:00
2025-12-25 08:29:27 +09:00
2025-08-21 13:47:00 -07:00
2026-01-21 08:29:00 -08:00
2025-10-30 08:00:19 -07:00
2025-09-19 10:02:55 -07:00
2026-01-09 06:07:21 -08:00
2024-09-13 14:33:30 -07:00
2025-08-05 11:53:55 -07:00
2025-12-12 22:08:02 +09:00
2025-09-16 17:59:53 -07:00
2025-10-14 12:56:09 -07:00
2025-07-23 08:15:22 -07:00
2025-09-29 11:40:34 -07:00
2026-01-15 13:02:38 -08:00
2025-10-15 10:29:28 -07:00
2025-10-02 12:26:12 -07:00
2025-01-17 13:30:03 -08:00
2025-01-17 13:30:03 -08:00
2025-11-04 07:32:24 -08:00
2025-11-19 17:41:03 -08:00
2025-11-04 07:32:24 -08:00
2026-01-06 07:30:16 +09:00
2025-12-30 12:58:19 +09:00
2025-07-23 08:15:18 -07:00
2025-08-04 08:10:33 -07:00
2025-08-04 08:10:33 -07:00
2025-11-19 10:55:39 -08:00
2025-09-18 10:07:00 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:18 -07:00
2026-01-06 16:33:52 +09:00
2025-07-01 14:58:24 -07:00
2025-11-04 07:32:25 -08:00
2025-09-15 12:10:56 -07:00
2025-09-29 11:40:35 -07:00
2025-07-23 08:15:18 -07:00
2025-12-23 11:33:15 +09:00
2026-01-22 14:34:35 +01:00
2025-07-23 08:15:22 -07:00
2025-12-29 22:02:53 +09:00
2025-07-23 08:15:22 -07:00
2025-11-03 12:18:48 -08:00
2025-09-16 11:37:06 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-11-19 17:41:03 -08:00
2025-11-19 17:41:03 -08:00
2025-08-21 13:46:59 -07:00
2025-07-23 08:15:22 -07:00
2025-07-23 08:15:22 -07:00
2025-12-29 22:02:53 +09:00
2025-11-26 10:32:42 -08:00
2025-07-23 08:15:22 -07:00