rclone: `--update` flag causes sync command to skip checksum checks
What is the problem you are having with rclone?
By default, rclone sync
will
- check file sizes and modtimes
- if there’s a difference in modtime, check checksums
- if checksums are different, transfer from source to destination.
When used with the --update
flag, I expect the process to be similar, except it’d only proceed beyond the 1st step if the modtime at the destination is older (but not newer) than the modtime at the source.
However, what rclone sync --update
actually does is:
- check file sizes and modtimes
- if modtime at destination is older, directly proceed to transfer from source to destination without checking checksums
What is your rclone version (output from rclone version
)
rclone v1.47.0-086-ge7c20e0b-beta
- os/arch: windows/amd64
- go version: go1.12.3
Which OS you are using and how many bits (eg Windows 7, 64 bit)
Windows 7 Pro 64-bit
Which cloud storage system are you using? (eg Google Drive)
First discovered when using Google Drive; reproduced on local filesystem.
The command you were trying to run
Discovered the problem when running
rclone sync src dst --update -v
For better clarity, here’s a more elaborated sequence of commands
> rclone lsf src
test_file
> rclone check src dst
2019/05/28 11:45:52 NOTICE: Local file system at \\?\D:\test\dst: 0 differences found
2019/05/28 11:45:52 NOTICE: Local file system at \\?\D:\test\dst: 1 matching files
> rclone touch src/test_file
> rclone sync src dst --no-update-modtime --stats 0 -v
2019/05/28 11:48:49 INFO : Local file system at \\?\D:\test\dst: Waiting for checks to finish
2019/05/28 11:48:49 INFO : Local file system at \\?\D:\test\dst: Waiting for transfers to finish
2019/05/28 11:48:49 INFO : Waiting for deletions to finish
> rclone sync src dst --update --no-update-modtime --stats 0 -vv
A log from the command with the -vv
flag
log of the last command:
2019/05/28 12:03:53 DEBUG : rclone: Version "v1.47.0-086-ge7c20e0b-beta" starting with parameters ["rclone" "sync" "src" "dst" "--update" "--no-update-modtime" "--stats" "0" "-vv"]
2019/05/28 12:03:53 DEBUG : Using config file from "C:\\Users\\Chenfeng\\.config\\rclone\\rclone.conf"
2019/05/28 12:03:53 INFO : Local file system at \\?\D:\test\dst: Waiting for checks to finish
2019/05/28 12:03:53 DEBUG : test_file: Destination is older than source, transferring
2019/05/28 12:03:53 INFO : Local file system at \\?\D:\test\dst: Waiting for transfers to finish
2019/05/28 12:03:53 INFO : test_file: Copied (replaced existing)
2019/05/28 12:03:53 INFO : Waiting for deletions to finish
2019/05/28 12:03:53 DEBUG : 4 go routines active
2019/05/28 12:03:53 DEBUG : rclone: Version "v1.47.0-086-ge7c20e0b-beta" finishing with parameters ["rclone" "sync" "src" "dst" "--update" "--no-update-modtime" "--stats" "0" "-vv"]
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 16 (9 by maintainers)
Commits related to this issue
- sync: --update/-u not transfer files that haven't changed - fixes #3232 Before this change --update would transfer any file which was newer than the destination regardless of whether it had changed o... — committed to rclone/rclone by ncw 5 years ago
- sync: --update/-u not transfer files that haven't changed - fixes #3232 Before this change --update would transfer any file which was newer than the destination regardless of whether it had changed o... — committed to rclone/rclone by ncw 5 years ago
- sync: --update/-u not transfer files that haven't changed - fixes #3232 Before this change --update would transfer any file which was newer than the destination regardless of whether it had changed o... — committed to rclone/rclone by ncw 5 years ago
- sync: --update/-u not transfer files that haven't changed - fixes #3232 Before this change --update would transfer any file which was newer than the destination regardless of whether it had changed o... — committed to rclone/rclone by ncw 5 years ago
Thanks for testing 😃
I’ve merged this to master now which means it will be in the latest beta in 15-30 mins and released in v1.50