mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 16:34:30 +01:00
sync: don't update mod times if --dry-run set - fixes #1100
This commit is contained in:
parent
f15c6b68b6
commit
b52c80e85c
@ -172,17 +172,21 @@ func equal(src, dst Object, sizeOnly, checkSum bool) bool {
|
||||
|
||||
// mod time differs but hash is the same to reset mod time if required
|
||||
if !Config.NoUpdateModTime {
|
||||
// Size and hash the same but mtime different so update the
|
||||
// mtime of the dst object here
|
||||
err := dst.SetModTime(srcModTime)
|
||||
if err == ErrorCantSetModTime {
|
||||
Debugf(src, "src and dst identical but can't set mod time without re-uploading")
|
||||
return false
|
||||
} else if err != nil {
|
||||
Stats.Error()
|
||||
Errorf(dst, "Failed to set modification time: %v", err)
|
||||
if Config.DryRun {
|
||||
Logf(src, "Not updating modification time as --dry-run")
|
||||
} else {
|
||||
Infof(src, "Updated modification time in destination")
|
||||
// Size and hash the same but mtime different so update the
|
||||
// mtime of the dst object here
|
||||
err := dst.SetModTime(srcModTime)
|
||||
if err == ErrorCantSetModTime {
|
||||
Debugf(src, "src and dst identical but can't set mod time without re-uploading")
|
||||
return false
|
||||
} else if err != nil {
|
||||
Stats.Error()
|
||||
Errorf(dst, "Failed to set modification time: %v", err)
|
||||
} else {
|
||||
Infof(src, "Updated modification time in destination")
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
|
@ -308,10 +308,22 @@ func TestSyncAfterChangingModtimeOnly(t *testing.T) {
|
||||
fstest.CheckItems(t, r.flocal, file1)
|
||||
fstest.CheckItems(t, r.fremote, file2)
|
||||
|
||||
fs.Config.DryRun = true
|
||||
defer func() { fs.Config.DryRun = false }()
|
||||
|
||||
fs.Stats.ResetCounters()
|
||||
err := fs.Sync(r.fremote, r.flocal)
|
||||
require.NoError(t, err)
|
||||
|
||||
fstest.CheckItems(t, r.flocal, file1)
|
||||
fstest.CheckItems(t, r.fremote, file2)
|
||||
|
||||
fs.Config.DryRun = false
|
||||
|
||||
fs.Stats.ResetCounters()
|
||||
err = fs.Sync(r.fremote, r.flocal)
|
||||
require.NoError(t, err)
|
||||
|
||||
fstest.CheckItems(t, r.flocal, file1)
|
||||
fstest.CheckItems(t, r.fremote, file1)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user