DO NOT REPLY [Bug 5583] Don't write out an unchanged file if all the checksums matched

samba-bugs at samba-bugs at
Fri Jul 4 08:13:55 GMT 2008

wayned at changed:

           What    |Removed                     |Added
             Status|NEW                         |ASSIGNED
            Summary|Files always updated even if|Don't write out an unchanged
                   |time is the only difference |file if all the checksums
                   |                            |matched

------- Comment #3 from wayned at  2008-07-04 03:13 CST -------
I have thought about trying to optimize out such a rewrite, and it is possible,
but only by delaying the start of the receiver beginning its update.  This
could slow things down if the file is actually different, but would speed
things up if the files were really the same.  I can see two different places to
put this logic:

One would be to have the receiver delay starting a temp file until it notices
that the sender has told it about a changed part of the basis file.  At that
point, it would need to create a temporary file, open the basis file, and do a
basis copy from 0 to the current position, and then proceed normally with the
reset of the copy.  However, if no difference was found, the update would not
be needed, and would be discarded.  (One potential issue: the receiver would
need to have a way to get the full-file checksum from the generator so that it
could do a double-check against the sender's full-file checksum, since it will
not have computed one.)

Another option would be to put the short-circuit into the sender's logic so
that it doesn't tell the receiver to do anything until it first finds a file
difference.  The protocol would be extended to have a way to convey to the
receiver that the file doesn't need any updates (since the receiver probably
needs to do its post-transfer attribute updating, and may need to notify the
generator that the file is done).  We'd still need a solution to the full-file
checksum verification.

One other option that is available now is to use one of the checksum caching
patches from the patches directory (such as the one that caches file-info in a
DB and associates the last-known attributes with a checksum, allowing rsync to
more quickly notice when files are the same).

Configure bugmail:
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.

More information about the rsync mailing list