mirror of https://github.com/databricks/cli.git
Don't sync symlink folders (#205)
Fixes https://github.com/databricks/databricks-vscode/issues/452
This commit is contained in:
parent
3851b59bbd
commit
8c1b620b17
|
@ -3,6 +3,7 @@ package fileset
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/fs"
|
"io/fs"
|
||||||
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -55,6 +56,15 @@ func (w *FileSet) RecursiveListFiles(dir string) (fileList []File, err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// skip symlinks
|
||||||
|
info, err := d.Info()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if info.Mode()&os.ModeSymlink != 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
if d.IsDir() {
|
if d.IsDir() {
|
||||||
ign, err := w.ignore.IgnoreDirectory(relPath)
|
ign, err := w.ignore.IgnoreDirectory(relPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -83,6 +83,33 @@ func TestDiff(t *testing.T) {
|
||||||
assert.Equal(t, map[string]string{"world.txt": "world.txt"}, state.RemoteToLocalNames)
|
assert.Equal(t, map[string]string{"world.txt": "world.txt"}, state.RemoteToLocalNames)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSymlinkDiff(t *testing.T) {
|
||||||
|
// Create temp project dir
|
||||||
|
projectDir := t.TempDir()
|
||||||
|
fileSet, err := git.NewFileSet(projectDir)
|
||||||
|
require.NoError(t, err)
|
||||||
|
state := Snapshot{
|
||||||
|
LastUpdatedTimes: make(map[string]time.Time),
|
||||||
|
LocalToRemoteNames: make(map[string]string),
|
||||||
|
RemoteToLocalNames: make(map[string]string),
|
||||||
|
}
|
||||||
|
|
||||||
|
err = os.Mkdir(filepath.Join(projectDir, "foo"), os.ModePerm)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
f1 := testfile.CreateFile(t, filepath.Join(projectDir, "foo", "hello.txt"))
|
||||||
|
defer f1.Close(t)
|
||||||
|
|
||||||
|
err = os.Symlink(filepath.Join(projectDir, "foo"), filepath.Join(projectDir, "bar"))
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
files, err := fileSet.All()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
change, err := state.diff(files)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Len(t, change.put, 1)
|
||||||
|
}
|
||||||
|
|
||||||
func TestFolderDiff(t *testing.T) {
|
func TestFolderDiff(t *testing.T) {
|
||||||
// Create temp project dir
|
// Create temp project dir
|
||||||
projectDir := t.TempDir()
|
projectDir := t.TempDir()
|
||||||
|
|
Loading…
Reference in New Issue