libgit2/libgit2 — pull request #2423 by robrix (2014-06-12 18:27:54+00:00)
Title: Demonstrate a trailing slash failure.

When ignoring a parent folder and negating two child folders with and without trailing slashes respectively, libgit2 is ignoring the one without but not the one with:

parent/*
parent/child1
parent/child2/

`git help ignore` has this to say about trailing slashes:

> If the pattern ends with a slash, it is removed for the purpose of the following description, but it would only find a match with a directory. In other words, foo/ will match a directory foo and paths underneath it, but will not match a regular file or a symbolic link foo (this is consistent with the way how pathspec works in general in Git).

Sure enough, having manually performed the same steps as this test, `git status` tells us the following:

# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
#	new file: force.txt
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
#	../.gitignore
#	child1/
#	child2/

i.e. neither child1 nor child2 is ignored.

This test is closely based on #2406, written by @carlosmn.