diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2023-01-12 13:55:25 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-01-13 19:36:57 +0100 |
commit | 29fefafcba0a3608465491835d84b646ce1e1b6e (patch) | |
tree | 9dfc63c3e148690e6ed818cbd0551539d5deb8e9 /unpack-trees.c | |
parent | sparse-index.c: expand_to_path() can assume non-NULL "istate" (diff) | |
download | git-29fefafcba0a3608465491835d84b646ce1e1b6e.tar.xz git-29fefafcba0a3608465491835d84b646ce1e1b6e.zip |
sparse-index API: BUG() out on NULL ensure_full_index()
Make the ensure_full_index() function stricter, and have it only
accept a non-NULL "struct index_state". This function (and this
behavior) was added in [1].
The only reason it needed to be this lax was due to interaction with
repo_index_has_changes(). See the addition of that code in [2].
The other reason for why this was needed dates back to interaction
with code added in [3]. In [4] we started calling ensure_full_index()
in unpack_trees(), but the caller added in 34110cd4e39 wants to pass
us a NULL "dst_index". Let's instead do the NULL check in
unpack_trees() itself.
1. 4300f8442a2 (sparse-index: implement ensure_full_index(), 2021-03-30)
2. 0c18c059a15 (read-cache: ensure full index, 2021-04-01)
3. 34110cd4e39 (Make 'unpack_trees()' have a separate source and
destination index, 2008-03-06)
4. 6863df35503 (unpack-trees: ensure full index, 2021-03-30)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Acked-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'unpack-trees.c')
-rw-r--r-- | unpack-trees.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/unpack-trees.c b/unpack-trees.c index ea09023b01..2381cd7cac 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -1880,7 +1880,8 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options prepare_repo_settings(repo); if (repo->settings.command_requires_full_index) { ensure_full_index(o->src_index); - ensure_full_index(o->dst_index); + if (o->dst_index) + ensure_full_index(o->dst_index); } if (o->reset == UNPACK_RESET_OVERWRITE_UNTRACKED && |