diff --git a/paths_test.go b/paths_test.go
index 27fde62..8831d7c 100644
--- a/paths_test.go
+++ b/paths_test.go
@@ -268,14 +268,15 @@ func TestFilterDirs(t *testing.T) {
 
 	list, err := testPath.ReadDir()
 	require.NoError(t, err)
-	require.Len(t, list, 6)
+	require.Len(t, list, 7)
 
-	pathEqualsTo(t, "testdata/fileset/anotherFile", list[0])
-	pathEqualsTo(t, "testdata/fileset/file", list[1])
-	pathEqualsTo(t, "testdata/fileset/folder", list[2])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[3])
-	pathEqualsTo(t, "testdata/fileset/test.txt", list[4])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[5])
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", list[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", list[1])
+	pathEqualsTo(t, "testdata/fileset/file", list[2])
+	pathEqualsTo(t, "testdata/fileset/folder", list[3])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[4])
+	pathEqualsTo(t, "testdata/fileset/test.txt", list[5])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[6])
 
 	list.FilterDirs()
 	require.Len(t, list, 2)
@@ -289,21 +290,23 @@ func TestFilterOutDirs(t *testing.T) {
 
 		list, err := testPath.ReadDir()
 		require.NoError(t, err)
-		require.Len(t, list, 6)
+		require.Len(t, list, 7)
 
-		pathEqualsTo(t, "testdata/fileset/anotherFile", list[0])
-		pathEqualsTo(t, "testdata/fileset/file", list[1])
-		pathEqualsTo(t, "testdata/fileset/folder", list[2])
-		pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[3])
-		pathEqualsTo(t, "testdata/fileset/test.txt", list[4])
-		pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[5])
+		pathEqualsTo(t, "testdata/fileset/.gitattributes", list[0])
+		pathEqualsTo(t, "testdata/fileset/anotherFile", list[1])
+		pathEqualsTo(t, "testdata/fileset/file", list[2])
+		pathEqualsTo(t, "testdata/fileset/folder", list[3])
+		pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[4])
+		pathEqualsTo(t, "testdata/fileset/test.txt", list[5])
+		pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[6])
 
 		list.FilterOutDirs()
-		require.Len(t, list, 4)
-		pathEqualsTo(t, "testdata/fileset/anotherFile", list[0])
-		pathEqualsTo(t, "testdata/fileset/file", list[1])
-		pathEqualsTo(t, "testdata/fileset/test.txt", list[2])
-		pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[3])
+		require.Len(t, list, 5)
+		pathEqualsTo(t, "testdata/fileset/.gitattributes", list[0])
+		pathEqualsTo(t, "testdata/fileset/anotherFile", list[1])
+		pathEqualsTo(t, "testdata/fileset/file", list[2])
+		pathEqualsTo(t, "testdata/fileset/test.txt", list[3])
+		pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[4])
 	}
 
 	{
diff --git a/readdir_test.go b/readdir_test.go
index ae25ede..6b04331 100644
--- a/readdir_test.go
+++ b/readdir_test.go
@@ -45,24 +45,25 @@ func TestReadDirRecursive(t *testing.T) {
 
 	list, err := testPath.ReadDirRecursive()
 	require.NoError(t, err)
-	require.Len(t, list, 16)
-
-	pathEqualsTo(t, "testdata/fileset/anotherFile", list[0])
-	pathEqualsTo(t, "testdata/fileset/file", list[1])
-	pathEqualsTo(t, "testdata/fileset/folder", list[2])
-	pathEqualsTo(t, "testdata/fileset/folder/.hidden", list[3])
-	pathEqualsTo(t, "testdata/fileset/folder/file2", list[4])
-	pathEqualsTo(t, "testdata/fileset/folder/file3", list[5])
-	pathEqualsTo(t, "testdata/fileset/folder/subfolder", list[6])
-	pathEqualsTo(t, "testdata/fileset/folder/subfolder/file4", list[7])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[8])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", list[9])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", list[10])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", list[11])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", list[12])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder/file4", list[13])
-	pathEqualsTo(t, "testdata/fileset/test.txt", list[14])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[15])
+	require.Len(t, list, 17)
+
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", list[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", list[1])
+	pathEqualsTo(t, "testdata/fileset/file", list[2])
+	pathEqualsTo(t, "testdata/fileset/folder", list[3])
+	pathEqualsTo(t, "testdata/fileset/folder/.hidden", list[4])
+	pathEqualsTo(t, "testdata/fileset/folder/file2", list[5])
+	pathEqualsTo(t, "testdata/fileset/folder/file3", list[6])
+	pathEqualsTo(t, "testdata/fileset/folder/subfolder", list[7])
+	pathEqualsTo(t, "testdata/fileset/folder/subfolder/file4", list[8])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", list[9])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", list[10])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", list[11])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", list[12])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", list[13])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder/file4", list[14])
+	pathEqualsTo(t, "testdata/fileset/test.txt", list[15])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", list[16])
 }
 
 func TestReadDirRecursiveSymLinkLoop(t *testing.T) {
@@ -113,120 +114,128 @@ func TestReadDirRecursiveFiltered(t *testing.T) {
 	l, err := testdata.ReadDirRecursiveFiltered(nil)
 	require.NoError(t, err)
 	l.Sort()
-	require.Len(t, l, 16)
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/file", l[1])
-	pathEqualsTo(t, "testdata/fileset/folder", l[2])
-	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[3])
-	pathEqualsTo(t, "testdata/fileset/folder/file2", l[4])
-	pathEqualsTo(t, "testdata/fileset/folder/file3", l[5])
-	pathEqualsTo(t, "testdata/fileset/folder/subfolder", l[6])
-	pathEqualsTo(t, "testdata/fileset/folder/subfolder/file4", l[7])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[8])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[9])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[10])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", l[11])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[12])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder/file4", l[13])
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[14])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[15])
+	require.Len(t, l, 17)
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/file", l[2])
+	pathEqualsTo(t, "testdata/fileset/folder", l[3])
+	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[4])
+	pathEqualsTo(t, "testdata/fileset/folder/file2", l[5])
+	pathEqualsTo(t, "testdata/fileset/folder/file3", l[6])
+	pathEqualsTo(t, "testdata/fileset/folder/subfolder", l[7])
+	pathEqualsTo(t, "testdata/fileset/folder/subfolder/file4", l[8])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[9])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[10])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[11])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", l[12])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[13])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder/file4", l[14])
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[15])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[16])
 
 	l, err = testdata.ReadDirRecursiveFiltered(FilterOutDirectories())
 	require.NoError(t, err)
 	l.Sort()
-	require.Len(t, l, 6)
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/file", l[1])
-	pathEqualsTo(t, "testdata/fileset/folder", l[2])          // <- this is listed but not traversed
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[3]) // <- this is listed but not traversed
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[4])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[5])
+	require.Len(t, l, 7)
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/file", l[2])
+	pathEqualsTo(t, "testdata/fileset/folder", l[3])          // <- this is listed but not traversed
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[4]) // <- this is listed but not traversed
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[5])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[6])
 
 	l, err = testdata.ReadDirRecursiveFiltered(nil, FilterOutDirectories())
 	require.NoError(t, err)
 	l.Sort()
-	require.Len(t, l, 12)
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/file", l[1])
-	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[2])
-	pathEqualsTo(t, "testdata/fileset/folder/file2", l[3])
-	pathEqualsTo(t, "testdata/fileset/folder/file3", l[4])
-	pathEqualsTo(t, "testdata/fileset/folder/subfolder/file4", l[5])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[6])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[7])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", l[8])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder/file4", l[9])
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[10])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[11])
+	require.Len(t, l, 13)
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/file", l[2])
+	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[3])
+	pathEqualsTo(t, "testdata/fileset/folder/file2", l[4])
+	pathEqualsTo(t, "testdata/fileset/folder/file3", l[5])
+	pathEqualsTo(t, "testdata/fileset/folder/subfolder/file4", l[6])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[7])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[8])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", l[9])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder/file4", l[10])
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[11])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[12])
 
 	l, err = testdata.ReadDirRecursiveFiltered(FilterOutDirectories(), FilterOutDirectories())
 	require.NoError(t, err)
 	l.Sort()
-	require.Len(t, l, 4)
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/file", l[1])
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[2])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[3])
+	require.Len(t, l, 5)
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/file", l[2])
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[3])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[4])
 
 	l, err = testdata.ReadDirRecursiveFiltered(FilterOutPrefixes("sub"), FilterOutSuffixes("3"))
 	require.NoError(t, err)
 	l.Sort()
-	require.Len(t, l, 12)
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/file", l[1])
-	pathEqualsTo(t, "testdata/fileset/folder", l[2])
-	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[3])
-	pathEqualsTo(t, "testdata/fileset/folder/file2", l[4])
-	pathEqualsTo(t, "testdata/fileset/folder/subfolder", l[5]) // <- subfolder skipped by Prefix("sub")
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[6])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[7])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[8])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[9]) // <- subfolder skipped by Prefix("sub")
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[10])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[11])
+	require.Len(t, l, 13)
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/file", l[2])
+	pathEqualsTo(t, "testdata/fileset/folder", l[3])
+	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[4])
+	pathEqualsTo(t, "testdata/fileset/folder/file2", l[5])
+	pathEqualsTo(t, "testdata/fileset/folder/subfolder", l[6]) // <- subfolder skipped by Prefix("sub")
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[7])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[8])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[9])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[10]) // <- subfolder skipped by Prefix("sub")
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[11])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[12])
 
 	l, err = testdata.ReadDirRecursiveFiltered(FilterOutPrefixes("sub"), AndFilter(FilterOutSuffixes("3"), FilterOutPrefixes("fil")))
 	require.NoError(t, err)
 	l.Sort()
-	require.Len(t, l, 9)
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/folder", l[1])
-	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[2])
-	pathEqualsTo(t, "testdata/fileset/folder/subfolder", l[3])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[4])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[5])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[6])
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[7])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[8])
+	require.Len(t, l, 10)
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/folder", l[2])
+	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[3])
+	pathEqualsTo(t, "testdata/fileset/folder/subfolder", l[4])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[5])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[6])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[7])
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[8])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[9])
 
 	l, err = testdata.ReadDirRecursiveFiltered(FilterOutPrefixes("sub"), AndFilter(FilterOutSuffixes("3"), FilterOutPrefixes("fil"), FilterOutSuffixes(".gz")))
 	require.NoError(t, err)
 	l.Sort()
-	require.Len(t, l, 8)
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/folder", l[1])
-	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[2])
-	pathEqualsTo(t, "testdata/fileset/folder/subfolder", l[3])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[4])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[5])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[6])
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[7])
+	require.Len(t, l, 9)
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/folder", l[2])
+	pathEqualsTo(t, "testdata/fileset/folder/.hidden", l[3])
+	pathEqualsTo(t, "testdata/fileset/folder/subfolder", l[4])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[5])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[6])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[7])
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[8])
 
 	l, err = testdata.ReadDirRecursiveFiltered(OrFilter(FilterPrefixes("sub"), FilterSuffixes("tofolder")))
 	require.NoError(t, err)
 	l.Sort()
-	require.Len(t, l, 11)
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/file", l[1])
-	pathEqualsTo(t, "testdata/fileset/folder", l[2])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[3])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[4])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[5])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", l[6])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[7])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder/file4", l[8])
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[9])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[10])
+	require.Len(t, l, 12)
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/file", l[2])
+	pathEqualsTo(t, "testdata/fileset/folder", l[3])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[4])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/.hidden", l[5])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[6])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", l[7])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[8])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder/file4", l[9])
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[10])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[11])
 
 	l, err = testdata.ReadDirRecursiveFiltered(nil, FilterNames("folder"))
 	require.NoError(t, err)
@@ -236,17 +245,18 @@ func TestReadDirRecursiveFiltered(t *testing.T) {
 
 	l, err = testdata.ReadDirRecursiveFiltered(FilterNames("symlinktofolder"), FilterOutNames(".hidden"))
 	require.NoError(t, err)
-	require.Len(t, l, 9)
+	require.Len(t, l, 10)
 	l.Sort()
-	pathEqualsTo(t, "testdata/fileset/anotherFile", l[0])
-	pathEqualsTo(t, "testdata/fileset/file", l[1])
-	pathEqualsTo(t, "testdata/fileset/folder", l[2])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[3])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[4])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", l[5])
-	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[6])
-	pathEqualsTo(t, "testdata/fileset/test.txt", l[7])
-	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[8])
+	pathEqualsTo(t, "testdata/fileset/.gitattributes", l[0])
+	pathEqualsTo(t, "testdata/fileset/anotherFile", l[1])
+	pathEqualsTo(t, "testdata/fileset/file", l[2])
+	pathEqualsTo(t, "testdata/fileset/folder", l[3])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder", l[4])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file2", l[5])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/file3", l[6])
+	pathEqualsTo(t, "testdata/fileset/symlinktofolder/subfolder", l[7])
+	pathEqualsTo(t, "testdata/fileset/test.txt", l[8])
+	pathEqualsTo(t, "testdata/fileset/test.txt.gz", l[9])
 }
 
 func TestReadDirRecursiveLoopDetection(t *testing.T) {
diff --git a/testdata/fileset/.gitattributes b/testdata/fileset/.gitattributes
new file mode 100644
index 0000000..71b9cc1
--- /dev/null
+++ b/testdata/fileset/.gitattributes
@@ -0,0 +1,4 @@
+# See: https://git-scm.com/docs/gitattributes
+
+# Disable Git converting line endings in files (i.e., core.autocrlf=false).
+*.txt -text