mirror of https://github.com/databricks/cli.git
424499ec1d
## Changes Introduce `libs/vfs` for an implementation of `fs.FS` and friends that _includes_ the absolute path it is anchored to. This is needed for: 1. Intercepting file operations to inject custom logic (e.g., logging, access control). 2. Traversing directories to find specific leaf directories (e.g., `.git`). 3. Converting virtual paths to OS-native paths. Options 2 and 3 are not possible with the standard `fs.FS` interface. They are needed such that we can provide an instance to the sync package and still detect the containing `.git` directory and convert paths to native paths. This change focuses on making the following packages use `vfs.Path`: * libs/fileset * libs/git * libs/sync All entries returned by `fileset.All` are now slash-separated. This has 2 consequences: * The sync snapshot now always uses slash-separated paths * We don't need to call `filepath.FromSlash` as much as we did ## Tests * All unit tests pass * All integration tests pass * Manually confirmed that a deployment made on Windows by a previous version of the CLI can be deployed by a new version of the CLI while retaining the validity of the local sync snapshot as well as the remote deployment state. |
||
---|---|---|
.. | ||
artifacts | ||
config | ||
deploy | ||
deployer | ||
env | ||
internal | ||
libraries | ||
metadata | ||
permissions | ||
phases | ||
python | ||
run | ||
schema | ||
scripts | ||
tests | ||
bundle.go | ||
bundle_read_only.go | ||
bundle_test.go | ||
context.go | ||
context_test.go | ||
deferred.go | ||
deferred_test.go | ||
log_string.go | ||
mutator.go | ||
mutator_read_only.go | ||
mutator_test.go | ||
parallel.go | ||
parallel_test.go | ||
root.go | ||
root_test.go | ||
seq.go | ||
seq_test.go |