From 1934b3a5b6ed02493c6b8736cc151e7e733ba63b Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Mon, 4 Apr 2016 14:22:25 +0200 Subject: [PATCH] lib/ignore: Remove pattern for foo/** which is already covered by foo/ Actual speed difference according to benchmarks is hidden in the noise Also make the "pattern" field for each entry match what is actually evaluated. --- lib/ignore/ignore.go | 11 ++++++----- lib/ignore/ignore_test.go | 4 ---- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/ignore/ignore.go b/lib/ignore/ignore.go index 02ab7a87..12ddf4d2 100644 --- a/lib/ignore/ignore.go +++ b/lib/ignore/ignore.go @@ -249,7 +249,9 @@ func parseIgnoreFile(fd io.Reader, currentFile string, seen map[string]bool) ([] } patterns = append(patterns, pattern) - pattern.match, err = glob.Compile(line[3:]) + line = line[3:] + pattern.pattern = line + pattern.match, err = glob.Compile(line) if err != nil { return fmt.Errorf("invalid pattern %q in ignore file", line) } @@ -271,7 +273,9 @@ func parseIgnoreFile(fd io.Reader, currentFile string, seen map[string]bool) ([] } patterns = append(patterns, pattern) - pattern.match, err = glob.Compile("**/" + line) + line := "**/" + line + pattern.pattern = line + pattern.match, err = glob.Compile(line) if err != nil { return fmt.Errorf("invalid pattern %q in ignore file", line) } @@ -299,9 +303,6 @@ func parseIgnoreFile(fd io.Reader, currentFile string, seen map[string]bool) ([] err = addPattern(line) case strings.HasSuffix(line, "/"): err = addPattern(line) - if err == nil { - err = addPattern(line + "**") - } default: err = addPattern(line) if err == nil { diff --git a/lib/ignore/ignore_test.go b/lib/ignore/ignore_test.go index 9d71f699..7d42b2dc 100644 --- a/lib/ignore/ignore_test.go +++ b/lib/ignore/ignore_test.go @@ -177,10 +177,6 @@ func TestCaching(t *testing.T) { t.Fatal("Expected empty cache") } - if len(pats.patterns) != 4 { - t.Fatal("Incorrect number of patterns loaded", len(pats.patterns), "!=", 4) - } - // Cache some outcomes for _, letter := range []string{"a", "b", "x", "y"} {