diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-06-06 09:47:43 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-06 09:47:43 -0400 |
commit | 4de6eb5b8ba559c1f18a6e7631d7800e294849c8 (patch) | |
tree | 613a17a62b42c9a02f4911422cff354317319f4a | |
parent | b1795e0da2c5c1f9429fedd2fa0b679ccca0f586 (diff) | |
parent | e269b34319664cd65d45875f11f3e1b8f7179428 (diff) | |
download | libgit2-4de6eb5b8ba559c1f18a6e7631d7800e294849c8.tar.gz |
Merge pull request #5074 from libgit2/ethomson/ignore_leading_slash
Ignore: only treat one leading slash as a root identifier
-rw-r--r-- | src/attr_file.c | 3 | ||||
-rw-r--r-- | tests/status/ignore.c | 24 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/attr_file.c b/src/attr_file.c index aef3e64af..51ecfbb8e 100644 --- a/src/attr_file.c +++ b/src/attr_file.c @@ -622,7 +622,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 */ diff --git a/tests/status/ignore.c b/tests/status/ignore.c index c43f31458..a93ff8b56 100644 --- a/tests/status/ignore.c +++ b/tests/status/ignore.c @@ -413,6 +413,30 @@ void test_status_ignore__leading_slash_ignores(void) cl_assert_equal_i(0, counts.wrong_sorted_path); } +void test_status_ignore__multiple_leading_slash(void) +{ + static const char *test_files[] = { + "empty_standard_repo/a.test", + "empty_standard_repo/b.test", + "empty_standard_repo/c.test", + "empty_standard_repo/d.test", + NULL + }; + + make_test_data("empty_standard_repo", test_files); + cl_git_mkfile( + "empty_standard_repo/.gitignore", + "a.test\n" + "/b.test\n" + "//c.test\n" + "///d.test\n"); + + assert_is_ignored("a.test"); + assert_is_ignored("b.test"); + refute_is_ignored("c.test"); + refute_is_ignored("d.test"); +} + void test_status_ignore__contained_dir_with_matching_name(void) { static const char *test_files[] = { |