mirror of
https://github.com/rclone/rclone.git
synced 2024-11-23 07:41:36 +08:00
make moveto/copyto no-ops when source and destination are the same (fixes #1261)
This commit is contained in:
parent
71028e0f06
commit
decd960867
|
@ -1502,6 +1502,11 @@ func Rmdirs(f Fs, dir string) error {
|
|||
|
||||
// moveOrCopyFile moves or copies a single file possibly to a new name
|
||||
func moveOrCopyFile(fdst Fs, fsrc Fs, dstFileName string, srcFileName string, cp bool) (err error) {
|
||||
if fdst.Name() == fsrc.Name() && dstFileName == srcFileName {
|
||||
Debugf(fdst, "don't need to copy/move %s, it is already at target location", dstFileName)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Choose operations
|
||||
Op := Move
|
||||
if cp {
|
||||
|
|
|
@ -798,6 +798,11 @@ func TestMoveFile(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.flocal)
|
||||
fstest.CheckItems(t, r.fremote, file2)
|
||||
|
||||
err = fs.MoveFile(r.fremote, r.flocal, file2.Path, file2.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.flocal)
|
||||
fstest.CheckItems(t, r.fremote, file2)
|
||||
}
|
||||
|
||||
func TestCopyFile(t *testing.T) {
|
||||
|
@ -819,6 +824,11 @@ func TestCopyFile(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.flocal, file1)
|
||||
fstest.CheckItems(t, r.fremote, file2)
|
||||
|
||||
err = fs.CopyFile(r.fremote, r.flocal, file2.Path, file2.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.flocal, file1)
|
||||
fstest.CheckItems(t, r.fremote, file2)
|
||||
}
|
||||
|
||||
// testFsInfo is for unit testing fs.Info
|
||||
|
|
Loading…
Reference in New Issue
Block a user