Commit e269b34319664cd65d45875f11f3e1b8f7179428

Edward Thomson 2019-05-19T13:12:47

ignore: only skip first leading slash For compatibility with git, only skip the first leading slash in an ignore file. That is: `/a.txt` indicates to ignore a file named `a.txt` at the root. However `//b.txt` does not indicate that a file named `b.txt` at the root should be ignored.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
diff --git a/src/attr_file.c b/src/attr_file.c
index 8619647..6042da2 100644
--- a/src/attr_file.c
+++ b/src/attr_file.c
@@ -604,7 +604,8 @@ int git_attr_fnmatch__parse(
 		if (*scan == '/') {
 			spec->flags = spec->flags | GIT_ATTR_FNMATCH_FULLPATH;
 			slash_count++;
-			if (pattern == scan)
+
+			if (slash_count == 1 && pattern == scan)
 				pattern++;
 		}
 		/* remember if we see an unescaped wildcard in pattern */