Implement failing test for gitignore of complex subdirectory negation When a directory's contents are ignored, and then a glob negation is made to a nested subdir, other subdirectories are now unignored
diff --git a/tests/status/ignore.c b/tests/status/ignore.c
index 4965821..f6c72c2 100644
--- a/tests/status/ignore.c
+++ b/tests/status/ignore.c
@@ -1213,3 +1213,21 @@ void test_status_ignore__unignored_subdirs(void)
assert_is_ignored("dir/a.test");
refute_is_ignored("dir/subdir/a.test");
}
+
+void test_status_ignore__ignored_subdirfiles_with_subdir_rule(void)
+{
+ static const char *test_files[] = {
+ "empty_standard_repo/dir/a.test",
+ "empty_standard_repo/dir/sub1/b.test",
+ NULL
+ };
+
+ make_test_data("empty_standard_repo", test_files);
+ cl_git_mkfile(
+ "empty_standard_repo/.gitignore",
+ "/dir/*\n"
+ "!/dir/sub1/sub2/**/*\n");
+
+ assert_is_ignored("dir/a.test");
+ assert_is_ignored("dir/sub1/a.test");
+}