Commit aa877e09f2e3eeb24fd48d52165ec6defbd90bf1

Tyler Ang-Wanek 2019-03-14T09:59:27

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");
+}