I'm using rsync to copy file from Linux to Mac over SSH.
My command looks like this:
rsync \
--exclude FOO \
--exclude BAR \
-e ssh \
-rclpvih \
--delete \
--stats \
/local/dir/ \
host:/remote/dir/
And the output looks like this:
building file list ... done
...
<fc.T...... core/FileRecordingProcessor.cpp
<fc.T...... core/Pipeline.hpp
...
Number of files: 4,910 (reg: 4,401, dir: 509)
Number of created files: 0
Number of regular files transferred: 35
Total file size: 332.34M bytes
Total transferred file size: 2.62M bytes
Literal data: 0 bytes
Matched data: 2.62M bytes
File list size: 196.59K
File list generation time: 0.457 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 209.72K
Total bytes received: 12.03K
sent 209.72K bytes received 12.03K bytes 147.83K bytes/sec
total size is 332.34M speedup is 1,498.70
Even if nothing changed locally, rsync transfers the same (sub)set of files on each invocation.
Those files are only a small subset of the whole tree. Other files are not resent unless they are really changed. The number of file being resent is always 35. All of them have <fc.T......
flags.
Files look identical on local and remote machines.
Local:
$ ll core/Pipeline.hpp
-rw-r--r-- 1 victor victor 5.1K Nov 2 18:24 core/Pipeline.hpp
$ md5sum core/Pipeline.hpp
7604940d777322a587d2fe2fa12c1183 core/Pipeline.hpp
Remote:
$ ll core/Pipeline.hpp
-rw-r--r-- 1 victor staff 5.1K Nov 3 18:20 core/Pipeline.hpp
$ md5sum core/Pipeline.hpp
7604940d777322a587d2fe2fa12c1183 core/Pipeline.hpp
Owner, group, and times are not the same, but rsync is not configured to preserve them and is configured to use checksums.
The time on the two machines is not synced.