Syncing timestamps when using --checksum

I am a strong advocate for KISS and Occam with respect to both code and options because it is an easy road towards making something reliable, robust, and easy to use.

I only have a few months experience with rclone, but this PR gave me a lesson in the complexity of the rclone code base. I started the PR to fix what looked like a simple issue with the priority between RCLONE_STATS and RCLONE_PROGRESS and ended up finding and fixing several additional issues while single stepping through the rclone code. At a point I had to stop taking note of potential issues, to keep the PR down in size and my own time spending in check.

My impression is that the issues were caused by the complexity introduced by the many options and flags and the associated code to handle priorities and interoperability. This is difficult to code and sometimes even more difficult to test properly. The available options, flags and priorities may have reached a level where it is over the head for even the most experienced programmers.

My point is that this (and other similar) features all come with good intentions and highly qualified programmers, but additional features to handle special situations often comes at the expense of maintainability, reliability, robustness, and ease of use.

TL;DR: I humbly vote for the simplest solution that doesn’t introduce new flags, priorities or interoperability issues - that is easy to understand and easy to code. I would accept breaking backward compatibility to reach this.

Added the request sync mode to colection of yet unsuuported modes feature: implement advanced change detection · Issue #4810 · rclone/rclone · GitHub

Introducing a backward-incompatible change to the default behavior is not a good solution, as has already been discussed.

It seems like the only argument against adding a new flag is "there are already a lot of flags". But this isn't really an argument for anything, just an observation. From a user perspective, the new flag doesn't introduce any new conceptual complexity because it is just the opposite of an existing flag.

(default) --checksum
(default) update no update
--no-update-modtime no update no update
--update-modtime update update