why does --size-only not detect change only is size (but also
csights at fastmail.fm
Thu Apr 19 02:07:18 GMT 2007
On Wednesday 18 April 2007 21:03, Wayne Davison wrote:
> On Wed, Apr 18, 2007 at 08:40:40PM -0400, CSights wrote:
> > Yes, the file was not actually transferred because I used the -n option.
> The -n is irrelevant. If rsync considered the file to be in need of a
> transfer, it would have output a file-transfer character in the first
> column of the -i output. Since it output a period, it is just telling
> you that the file needed an attribute tweaked -- in this case, the mod-
> ified time (the 't' in the output). If rsync were adjusting some other
> preserved attribute, it would have output that letter as well (or
> instead). For instance, if a file just needed its group tweaked, it
> might look like this:
> .f.....g... Untitled.pdf
> See Matt's answer for a discussion of how --no-times can be used.
So with --size-only rsync still compares the modification times and other
metadata and then "tweaks" these on the receiving file.
With the default file comparison algorithm rsync compares , creates a new
file on the receiver to be identical to the sender, then deletes the original
file on the receiver and moves the new file into place.
That can be a big difference in behavior! E.g. In the default behavior hard
symlinks are broken, but with --size-only they are not.
IMHO it would be nice if --size-only (and --checksum, --ignore-size) only
changed how the "are the files different" decision was made, not how the file
was updated. Different switches could be used for the file update behavior,
e.g. switches like --inplace.
Thanks for the clarifications (and of course rsync),
More information about the rsync