gitignore: add test showing gitignore directory pattern matching a file

Summary:
The gitignore matcher assumes everything is a directory.  This causes problems
if a directory pattern matches a file that we don't wnat to be ignored.

Add a test demonstrating the issue.

Reviewed By: quark-zju

Differential Revision: D29788782

fbshipit-source-id: 4cd41c7c0985a8729443d6c0507ba98fa212049e
This commit is contained in:
Mark Juggurnauth-Thomas 2021-07-21 03:38:45 -07:00 committed by Facebook GitHub Bot
parent b0bf7923c3
commit 796a0ef8af

View File

@ -53,3 +53,23 @@ sh % "hg status --config 'ui.ignore.global=$TESTTMP/globalignore'" == r"""
? Makefile
? exp/.gitignore
? exp/i.tmp"""
# Test directory patterns only match directories.
sh % "cat" << r"""
*.tmp
build*/
""" > ".gitignore"
sh % "mkdir buildstuff"
sh % "touch buildstuff/output builddocs.txt"
sh % "hg status" == r"""
? .gitignore
? Makefile
? exp/.gitignore
? exp/i.tmp
? x.pyc"""
# ERROR: builddocs.txt should show up as unknown. It doesn't because of
# gitignorematcher.matchfn assuming it is a directory.