Fix --delete-before deleting files on copy - fixes #1166
This commit is contained in:
parent
12aa03f5b8
commit
6b0f2ef4bd
2 changed files with 24 additions and 1 deletions
|
@ -1052,7 +1052,7 @@ func runSyncCopyMove(fdst, fsrc Fs, deleteMode DeleteMode, DoMove bool) error {
|
|||
return errors.New("can't delete and move at the same time")
|
||||
}
|
||||
// Run an extra pass to delete only
|
||||
if !*oldSyncMethod && Config.DeleteMode == DeleteModeBefore {
|
||||
if !*oldSyncMethod && deleteMode == DeleteModeBefore {
|
||||
if Config.TrackRenames {
|
||||
return errors.New("can't use --delete-before with --track-renames")
|
||||
}
|
||||
|
|
|
@ -531,6 +531,29 @@ func TestSyncDeleteBefore(t *testing.T) {
|
|||
TestSyncAfterRemovingAFileAndAddingAFile(t)
|
||||
}
|
||||
|
||||
// Copy test delete before - shouldn't delete anything
|
||||
func TestCopyDeleteBefore(t *testing.T) {
|
||||
r := NewRun(t)
|
||||
defer r.Finalise()
|
||||
|
||||
fs.Config.DeleteMode = fs.DeleteModeBefore
|
||||
defer func() {
|
||||
fs.Config.DeleteMode = fs.DeleteModeDefault
|
||||
}()
|
||||
|
||||
file1 := r.WriteObject("potato", "hopefully not deleted", t1)
|
||||
file2 := r.WriteFile("potato2", "hopefully copied in", t1)
|
||||
fstest.CheckItems(t, r.fremote, file1)
|
||||
fstest.CheckItems(t, r.flocal, file2)
|
||||
|
||||
fs.Stats.ResetCounters()
|
||||
err := fs.CopyDir(r.fremote, r.flocal)
|
||||
require.NoError(t, err)
|
||||
|
||||
fstest.CheckItems(t, r.fremote, file1, file2)
|
||||
fstest.CheckItems(t, r.flocal, file2)
|
||||
}
|
||||
|
||||
// Test with exclude
|
||||
func TestSyncWithExclude(t *testing.T) {
|
||||
r := NewRun(t)
|
||||
|
|
Loading…
Reference in a new issue