]> git.ipfire.org Git - thirdparty/git.git/commit
t5526: break test submodule differently
authorPatrick Steinhardt <ps@pks.im>
Mon, 29 Jan 2024 11:07:34 +0000 (12:07 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 29 Jan 2024 21:54:33 +0000 (13:54 -0800)
commit7a746904a98c62cf23b47e8e0450f0e03bd159e9
treebf9f8eac20108c9ddbaaf969f0945836313c7c44
parent61e1c560bc7424278504b46f764a1ad945cebf37
t5526: break test submodule differently

In 10f5c52656 (submodule: avoid auto-discovery in
prepare_submodule_repo_env(), 2016-09-01) we fixed a bug when doing a
recursive fetch with submodule in the case where the submodule is broken
due to whatever reason. The test to exercise that the fix works breaks
the submodule by deleting its `HEAD` reference, which will cause us to
not detect the directory as a Git repository.

While this is perfectly fine in theory, this way of breaking the repo
becomes problematic with the current efforts to introduce another refdb
backend into Git. The new reftable backend has a stub HEAD file that
always contains "ref: refs/heads/.invalid" so that tools continue to be
able to detect such a repository. But as the reftable backend will never
delete this file even when asked to delete `HEAD` the current way to
delete the `HEAD` reference will stop working.

Adapt the code to instead delete the objects database. Going back with
this new way to cause breakage confirms that it triggers the infinite
recursion just the same, and there are no equivalent ongoing efforts to
replace the object database with an alternate backend.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Reviewed-by: Christian Couder <christian.couder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5526-fetch-submodules.sh