From 3e21a7261b472bd79c36df5a29a0cf685a39bcb7 Mon Sep 17 00:00:00 2001 From: jhasse-shade Date: Tue, 16 Dec 2025 12:21:22 -0500 Subject: [PATCH] shade: Fix VFS test issues --- backend/shade/shade.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/backend/shade/shade.go b/backend/shade/shade.go index 53f39029f..d06c66d51 100644 --- a/backend/shade/shade.go +++ b/backend/shade/shade.go @@ -311,6 +311,8 @@ func (f *Fs) Move(ctx context.Context, src fs.Object, remote string) (fs.Object, o := &Object{ fs: f, remote: remote, + mtime: srcObj.mtime, + size: srcObj.size, } fromFullPath := path.Join(src.Fs().Root(), srcObj.remote) toFullPath := path.Join(f.root, remote) @@ -367,7 +369,18 @@ func (f *Fs) DirMove(ctx context.Context, src fs.Fs, srcRemote, dstRemote string return fs.ErrorDirExists } - err := f.ensureParentDirectories(ctx, dstRemote) + fullPathSrc := f.buildFullPath(srcRemote) + fullPathSrcUnencoded, err := url.QueryUnescape(fullPathSrc) + if err != nil { + return err + } + + fullPathDstUnencoded, err := url.QueryUnescape(fullPath) + if err != nil { + return err + } + + err = f.ensureParentDirectories(ctx, dstRemote) if err != nil { return err } @@ -378,6 +391,15 @@ func (f *Fs) DirMove(ctx context.Context, src fs.Fs, srcRemote, dstRemote string } _, err = f.Move(ctx, o, dstRemote) + + if err == nil { + + f.createdDirMu.Lock() + f.createdDirs[fullPathSrcUnencoded] = false + f.createdDirs[fullPathDstUnencoded] = true + f.createdDirMu.Unlock() + } + return err }