This is a discussion on Re: Question regarding --delete-during/after and backup file cases - Tools ; On Wed, 2008-10-22 at 14:38 +0200, Michal Soltys wrote: > A good while ago I asked about difference between --delete-during/delay > and --delete-after, when per-directory files are updated (all is > perfectly clear for me here), but during the discussion ...
On Wed, 2008-10-22 at 14:38 +0200, Michal Soltys wrote:
> A good while ago I asked about difference between --delete-during/delay
> and --delete-after, when per-directory files are updated (all is
> perfectly clear for me here), but during the discussion there was a hint
> made by Wayne, that the outcome can differ in more situations:
> " It is useful for things such as --delay-updates --delete-delay (to
> have all updates happen more rapidly at the end), and the option avoids
> an extra dir-scan delete pass in such a case. And for folks that don't
> have per-dir filter files being updated, it works the same as
> --delete-after (if we disregard certain backup-file cases where the
> suffix is not excluded), just more optimally. "
(It would have made my life easier if you had replied directly to that
message so I didn't have to search for it.)
> If I understand it correctly - those "backup-file cases" mean -b option
> and - accidental or deliberate - override of the protect rule added
> implicitly by rsync (as explained in the man page). But if this rule is
> overriden (effectivly allowing deletion of backuped files), then
> assuming no per-dir rules are changed, the outcome will be the same
> regardless if we use --delete-during + --delete-delay or --delete-after.
I found one case where the outcome differs. If the protect filter is
overridden and a destination file is backed up before being *updated*,
then --delete-after will delete the backup file but --delete-delay won't
(because it checks for deletions before the backup file is created in
the first place). E.g., with this sequence of commands:
mkdir src dest
echo NEWDATA >src/foo
rsync -r --delete-WHEN --filter='R *' -b src/ dest/
dest/foo~ will exist at the end if WHEN is "delay" but not if WHEN is
I can't think of any other such cases when no per-dir rules are changed,
but that doesn't mean there aren't any: an rsync run is a complex
process with numerous steps that can interact in unexpected ways.
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html