diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2021-07-14 13:12:38 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-07-14 20:42:49 (GMT) |
commit | fe0d576153117953189e03d6c2c09445ccad4977 (patch) | |
tree | fa46bc9296b60cb9991acb5e900d0900637db1e2 /tree-walk.h | |
parent | d76723ee5313d0176e8777af4aa104d7562543c1 (diff) | |
download | git-fe0d576153117953189e03d6c2c09445ccad4977.zip git-fe0d576153117953189e03d6c2c09445ccad4977.tar.gz git-fe0d576153117953189e03d6c2c09445ccad4977.tar.bz2 |
wt-status: expand added sparse directory entries
It is difficult, but possible, to get into a state where we intend to
add a directory that is outside of the sparse-checkout definition. Add a
test to t1092-sparse-checkout-compatibility.sh that demonstrates this
using a combination of 'git reset --mixed' and 'git checkout --orphan'.
This test failed before because the output of 'git status
--porcelain=v2' would not match on the lines for folder1/:
* The sparse-checkout repo (with a full index) would output each path
name that is intended to be added.
* The sparse-index repo would only output that "folder1/" is staged for
addition.
The status should report the full list of files to be added, and so this
sparse-directory entry should be expanded to a full list when reaching
it inside the wt_status_collect_changes_initial() method. Use
read_tree_at() to assist.
Somehow, this loop over the cache entries was not guarded by
ensure_full_index() as intended.
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'tree-walk.h')
0 files changed, 0 insertions, 0 deletions