Derrick Stolee
839a66349e
sparse-index: API protection strategy
...
Edit and expand the sparse-index design document with the plan for
guarding index operations with ensure_full_index().
Notably, the plan has changed to not have an expand_to_path() method in
favor of checking for a sparse-directory hit inside of the
index_path_pos() API.
The changes that follow this one will incrementally add
ensure_full_index() guards to iterations over all cache entries. Some
iterations over the cache entries are not protected due to a few
categories listed in the document. Since these are not being modified,
here is a short list of the files and methods that will not receive
these guards:
Looking for non-zero stage:
* builtin/add.c:chmod_pathspec()
* builtin/merge.c:count_unmerged_entries()
* merge-ort.c:record_conflicted_index_entries()
* read-cache.c:unmerged_index()
* rerere.c:check_one_conflict(), find_conflict(), rerere_remaining()
* revision.c:prepare_show_merge()
* sequencer.c:append_conflicts_hint()
* wt-status.c:wt_status_collect_changes_initial()
Looking for submodules:
* builtin/submodule--helper.c:module_list_compute()
* submodule.c: several methods
* worktree.c:validate_no_submodules()
Part of the index API:
* name-hash.c: lazy init methods
* preload-index.c:preload_thread(), preload_index()
* read-cache.c: file format methods
Checking for correct order of cache entries:
* read-cache.c:check_ce_order()
Ignores SKIP_WORKTREE entries or already aware:
* unpack-trees.c:mark_new_skip_worktree()
* wt-status.c:wt_status_check_sparse_checkout()
Signed-off-by: Derrick Stolee <dstolee@microsoft.com >
Reviewed-by: Elijah Newren <newren@gmail.com >
Signed-off-by: Junio C Hamano <gitster@pobox.com >
2021-04-14 13:45:34 -07:00
..
2021-03-30 12:57:47 -07:00
2020-07-06 22:09:16 -07:00
2021-03-04 15:42:50 -08:00
2021-04-14 13:45:34 -07:00
2019-05-09 00:37:27 +09:00
2020-03-29 09:25:38 -07:00
2019-10-06 12:25:16 +09:00
2021-02-24 15:21:25 -08:00
2020-08-04 18:34:02 -07:00
2020-06-17 21:54:05 -07:00
2021-02-05 13:49:53 -08:00
2021-02-23 13:33:02 -08:00
2019-12-13 12:18:07 -08:00
2020-12-21 13:47:32 -08:00
2021-02-16 09:30:42 -08:00
2020-02-18 13:53:30 -08:00
2021-01-12 12:06:15 -08:00
2019-12-04 10:10:37 -08:00
2021-02-24 15:21:25 -08:00
2018-05-25 17:16:47 +09:00
2020-08-20 16:34:37 -07:00
2018-09-21 09:28:58 -07:00
2020-09-19 15:56:06 -07:00
2020-10-08 14:01:15 -07:00
2020-08-28 14:06:06 -07:00
2021-01-12 14:04:39 -08:00
2021-02-25 16:43:30 -08:00
2020-06-08 18:06:28 -07:00
2020-07-30 09:16:48 -07:00
2020-07-01 15:54:05 -07:00
2019-11-07 13:42:00 +09:00
2020-03-17 15:02:23 -07:00
2021-01-12 14:04:40 -08:00
2019-04-02 13:57:00 +09:00
2020-10-27 15:09:51 -07:00
2020-10-20 11:57:40 -07:00
2019-10-11 14:24:46 +09:00
2021-01-11 22:03:08 -08:00
2018-12-26 15:29:30 -08:00
2020-11-02 13:17:39 -08:00
2020-04-03 11:37:22 -07:00
2020-10-20 11:57:35 -07:00
2021-01-25 14:19:19 -08:00
2018-05-25 17:16:47 +09:00
2020-05-08 14:25:01 -07:00
2020-05-18 13:19:33 -07:00
2019-11-07 13:42:00 +09:00
2019-03-13 11:14:22 +09:00
2019-04-08 17:24:51 +09:00
2020-09-20 21:30:26 -07:00
2020-09-21 13:37:03 -07:00
2020-09-21 13:37:03 -07:00
2021-02-22 13:35:49 -08:00
2020-06-25 14:19:23 -07:00
2020-10-04 12:56:29 -07:00
2020-08-18 13:25:05 -07:00
2020-10-20 12:22:25 -07:00
2018-10-29 10:17:01 +09:00
2021-02-15 16:48:38 -08:00
2020-09-25 10:59:44 -07:00
2020-11-21 15:14:38 -08:00
2021-01-20 19:10:42 -08:00
2021-02-10 23:43:55 -08:00
2020-11-01 15:54:14 -08:00
2019-10-06 09:45:02 +09:00
2019-05-28 10:47:42 -07:00
2020-08-04 18:34:01 -07:00
2019-03-07 09:25:32 +09:00
2021-02-22 12:07:40 -08:00
2018-05-02 17:03:33 +09:00
2020-08-31 11:44:33 -07:00
2021-03-01 14:02:57 -08:00
2020-12-13 15:53:50 -08:00
2019-01-28 10:57:44 -08:00
2019-04-01 15:49:47 +09:00
2021-02-05 16:40:44 -08:00
2021-01-23 11:48:20 -08:00
2020-06-25 09:18:53 -07:00
2020-11-04 14:04:44 -08:00
2021-02-24 15:21:25 -08:00
2021-02-09 23:09:24 -08:00
2019-09-09 11:05:51 -07:00
2019-09-09 11:05:52 -07:00
2020-05-05 16:07:30 -07:00
2021-02-09 14:09:16 -08:00
2019-05-13 23:11:59 +09:00
2021-01-06 14:22:24 -08:00
2020-08-11 14:05:26 -07:00
2018-05-02 17:03:33 +09:00
2020-08-03 12:40:09 -07:00
2021-01-04 11:27:48 -08:00
2021-02-22 13:18:30 -08:00
2018-05-02 17:03:33 +09:00
2020-04-29 16:15:27 -07:00
2020-10-03 09:59:19 -07:00
2019-01-07 15:29:34 -08:00
2021-02-17 17:21:41 -08:00
2020-04-06 13:42:43 -07:00
2020-10-20 11:57:40 -07:00
2019-09-09 11:05:52 -07:00
2018-10-22 13:32:54 +09:00
2019-04-22 11:14:46 +09:00
2019-04-01 14:00:53 +09:00
2019-04-01 14:00:53 +09:00
2020-10-27 11:40:33 -07:00
2021-02-22 13:18:30 -08:00
2019-09-05 13:01:48 -07:00
2018-05-02 17:03:33 +09:00
2019-07-09 15:25:44 -07:00
2020-04-06 13:42:43 -07:00
2020-10-07 09:49:05 -07:00
2021-02-17 16:25:29 -08:00
2020-12-12 23:35:51 -08:00
2020-10-20 11:57:40 -07:00
2020-02-19 10:56:49 -08:00
2021-02-05 16:31:25 -08:00
2018-05-02 17:03:33 +09:00
2018-05-02 17:03:33 +09:00
2021-02-10 13:34:51 -08:00
2019-04-10 12:05:03 +09:00
2020-08-17 10:50:14 -07:00
2019-01-10 10:29:05 -08:00
2020-12-21 13:47:32 -08:00
2021-03-30 12:57:48 -07:00
2021-02-11 13:34:58 -08:00
2021-02-19 19:36:47 -08:00
2020-06-24 09:14:21 -07:00
2020-10-20 11:57:40 -07:00
2020-10-08 09:25:29 -07:00
2021-02-19 19:36:47 -08:00
2021-01-09 22:57:24 -08:00
2020-11-16 13:44:01 -08:00
2019-05-15 14:07:37 +09:00
2019-01-23 11:37:29 -08:00
2018-05-02 17:03:33 +09:00
2019-03-13 11:14:22 +09:00
2021-01-30 09:57:40 -08:00
2021-02-18 10:53:33 -08:00
2020-10-22 10:29:30 -07:00
2020-03-17 15:02:24 -07:00
2020-01-08 08:56:40 -08:00
2020-08-04 18:34:01 -07:00
2021-03-01 14:02:56 -08:00
2020-06-25 09:18:53 -07:00
2020-09-20 21:29:02 -07:00
2021-01-04 11:27:48 -08:00
2019-07-25 14:27:13 -07:00
2020-11-01 15:54:14 -08:00
2021-02-18 10:53:33 -08:00
2021-01-04 11:29:36 -08:00
2020-07-06 22:09:13 -07:00
2019-11-10 18:02:14 +09:00
2018-08-31 14:04:06 -07:00
2020-10-04 12:54:07 -07:00
2019-05-07 13:04:48 +09:00
2019-05-07 13:04:48 +09:00
2019-09-09 11:05:52 -07:00
2019-06-24 12:37:21 -07:00
2020-07-18 13:43:34 -07:00
2020-12-02 14:53:42 -08:00
2021-02-24 15:21:25 -08:00
2020-11-01 15:54:14 -08:00
2020-11-01 15:54:14 -08:00
2021-01-12 14:04:39 -08:00
2020-03-29 09:25:38 -07:00
2020-03-29 09:25:38 -07:00
2019-09-16 12:20:39 -07:00
2020-10-20 11:57:35 -07:00
2019-11-11 11:04:46 +09:00
2021-01-21 15:50:01 -08:00
2020-11-30 13:55:54 -08:00
2020-08-17 10:50:14 -07:00
2020-12-09 14:16:42 -08:00
2020-11-04 14:04:44 -08:00
2020-09-30 14:52:00 -07:00
2020-09-18 15:41:56 -07:00
2020-07-08 22:08:54 -07:00
2021-02-25 16:43:30 -08:00
2020-07-08 22:08:53 -07:00
2019-07-02 12:08:08 -07:00
2020-10-20 11:57:40 -07:00
2021-01-07 15:41:36 -08:00
2019-10-04 09:26:42 +09:00
2019-10-21 12:02:39 +09:00
2020-03-31 16:08:02 -07:00
2020-06-25 09:18:53 -07:00