diff --git a/src/status.c b/src/status.c index a0716e949..bec75294f 100644 --- a/src/status.c +++ b/src/status.c @@ -192,7 +192,8 @@ int git_status_foreach( opts.show = GIT_STATUS_SHOW_INDEX_AND_WORKDIR; opts.flags = GIT_STATUS_OPT_INCLUDE_IGNORED | - GIT_STATUS_OPT_INCLUDE_UNTRACKED; + GIT_STATUS_OPT_INCLUDE_UNTRACKED | + GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS; return git_status_foreach_ext(repo, &opts, callback, payload); } diff --git a/tests-clar/status/worktree.c b/tests-clar/status/worktree.c index dbc2feebd..7a0494ec9 100644 --- a/tests-clar/status/worktree.c +++ b/tests-clar/status/worktree.c @@ -143,11 +143,12 @@ void test_status_worktree__purged_worktree(void) cl_assert(counts.wrong_sorted_path == 0); } -/* this test is equivalent to t18-status.c:statuscb3 */ +/* this test is similar to t18-status.c:statuscb3 */ void test_status_worktree__swap_subdir_and_file(void) { struct status_entry_counts counts; git_repository *repo = cl_git_sandbox_init("status"); + git_status_options opts; /* first alter the contents of the worktree */ cl_git_pass(p_rename("status/current_file", "status/swap")); @@ -164,8 +165,12 @@ void test_status_worktree__swap_subdir_and_file(void) counts.expected_paths = entry_paths3; counts.expected_statuses = entry_statuses3; + memset(&opts, 0, sizeof(opts)); + opts.flags = GIT_STATUS_OPT_INCLUDE_UNTRACKED | + GIT_STATUS_OPT_INCLUDE_IGNORED; + cl_git_pass( - git_status_foreach(repo, cb_status__normal, &counts) + git_status_foreach_ext(repo, &opts, cb_status__normal, &counts) ); cl_assert(counts.entry_count == counts.expected_entry_count); diff --git a/tests/t18-status.c b/tests/t18-status.c index 8abff9872..bfd6906c1 100644 --- a/tests/t18-status.c +++ b/tests/t18-status.c @@ -261,7 +261,9 @@ static const char *entry_paths3[] = { "42-is-not-prime.sigh", "README.md", "current_file", - "current_file/", + "current_file/current_file", + "current_file/modified_file", + "current_file/new_file", "file_deleted", "ignored_file", "modified_file", @@ -286,6 +288,8 @@ static const unsigned int entry_statuses3[] = { GIT_STATUS_WT_NEW, GIT_STATUS_WT_DELETED, GIT_STATUS_WT_NEW, + GIT_STATUS_WT_NEW, + GIT_STATUS_WT_NEW, GIT_STATUS_WT_DELETED, GIT_STATUS_IGNORED, GIT_STATUS_WT_MODIFIED, @@ -304,7 +308,7 @@ static const unsigned int entry_statuses3[] = { GIT_STATUS_WT_DELETED, }; -#define ENTRY_COUNT3 21 +#define ENTRY_COUNT3 23 BEGIN_TEST(statuscb3, "test retrieving status for a worktree where a file and a subdir have been renamed and some files have been added") git_repository *repo;