]> git.ipfire.org Git - thirdparty/git.git/commit
add: implement the --sparse option
authorDerrick Stolee <dstolee@microsoft.com>
Fri, 24 Sep 2021 15:39:08 +0000 (15:39 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 Sep 2021 17:31:02 +0000 (10:31 -0700)
commit0299a69694fcf486a0880439bb4dacfafe3ffc38
tree2e719f647be34a55ec6c560202b2a4c5e5ffc735
parent49fdd51a235fe2ca91a6d1b16315204f0f016a96
add: implement the --sparse option

We previously modified 'git add' to refuse updating index entries
outside of the sparse-checkout cone. This is justified to prevent users
from accidentally getting into a confusing state when Git removes those
files from the working tree at some later point.

Unfortunately, this caused some workflows that were previously possible
to become impossible, especially around merge conflicts outside of the
sparse-checkout cone. These were documented in tests within t1092.

We now re-enable these workflows using a new '--sparse' option to 'git
add'. This allows users to signal "Yes, I do know what I'm doing with
these files," and accept the consequences of the files leaving the
worktree later.

We delay updating the advice message until implementing a similar option
in 'git rm' and 'git mv'.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-add.txt
builtin/add.c
t/t1092-sparse-checkout-compatibility.sh
t/t3705-add-sparse-checkout.sh