rclone: `--update` flag causes sync command to skip checksum checks

What is the problem you are having with rclone?

By default, rclone sync will

  1. check file sizes and modtimes
  2. if there’s a difference in modtime, check checksums
  3. 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:

  1. check file sizes and modtimes
  2. 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

Most upvoted comments

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