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. |
||
---|---|---|
.. | ||
testdata | ||
testdata_view_ignore | ||
clone.go | ||
clone_test.go | ||
config.go | ||
config_test.go | ||
fileset.go | ||
fileset_test.go | ||
ignore.go | ||
ignore_test.go | ||
reference.go | ||
reference_test.go | ||
repository.go | ||
repository_test.go | ||
view.go | ||
view_test.go |