why does --size-only not detect change only is size (but also time)?

CSights 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.
>
> ..wayne..

Ah,
	So with --size-only rsync still compares the modification times and other 
metadata and then "tweaks" these on the receiving file.
(.f..t......)
	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.
(>f..t......)
	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),
	C.


More information about the rsync mailing list