databricks-cli/libs/fileset
Pieter Noordhuis a7bf7ba6c5
Reload .gitignore files if they have changed (#190)
This commit changes the code in repository.go to lazily load gitignore
files as opposed to the previous eager approach. This means that the
signature of the `Ignore` function family has changed to return `(bool,
error)`.

This lazy approach fits better when other code is responsible for
recursively walking the file tree, because we never know up front which
gitignore files need to be loaded to compute the ignores. It also means
we no longer have to "prime" the `Repository` instance with a particular
directory we're interested in and rather let calls to `Ignore` load
whatever is needed.

The fileset wrapper under `git/` internally taints all gitignore objects
to force a call to [os.Stat] followed by a reload if they have changed,
before calling into the [fileset.FileSet] functions for recursively
listing files.
2023-01-31 18:34:36 +01:00
..
file.go Move git.FileSet to libs/fileset and make it aware of gitignores (#184) 2023-01-27 16:04:58 +01:00
fileset.go Reload .gitignore files if they have changed (#190) 2023-01-31 18:34:36 +01:00
ignorer.go Reload .gitignore files if they have changed (#190) 2023-01-31 18:34:36 +01:00