lib/ignore, lib/scanner: Fix recursion to catch included paths (fixes #5009) (#5010)

This commit is contained in:
Simon Frei
2018-06-18 08:22:19 +02:00
committed by Jakob Borg
parent 84c8964865
commit 8ff7ceeddc
3 changed files with 36 additions and 3 deletions

View File

@@ -246,8 +246,8 @@ func (w *walker) walkAndHashFiles(ctx context.Context, fchan, dchan chan protoco
if w.Matcher.Match(path).IsIgnored() {
l.Debugln("ignored (patterns):", path)
// Only descend if matcher says so and the current file is not a symlink.
if w.Matcher.SkipIgnoredDirs() || (info.IsSymlink() && info.IsDir()) {
return fs.SkipDir
if w.Matcher.SkipIgnoredDirs() || info.IsSymlink() {
return skip
}
// If the parent wasn't ignored already, set this path as the "highest" ignored parent
if info.IsDir() && (ignoredParent == "" || !strings.HasPrefix(path, ignoredParent+string(fs.PathSeparator))) {