Package: rsync
Version: 3.2.7-1
Severity: normal
Dear Maintainer,
Excected outcome: I wanted to preserve the time of modification for files that
did not exist on target, but do not change files that already exist, even if
the modification times differ.
Attempted action: I thought that rsync with -t and --ignore-existing would be a
perfect fit for that; their summary taken from rsync --help:
--times, -t preserve modification times
--ignore-existing skip updating files that exist on receiver
Actual result: I compared the output of two commands:
rsync -rlv --dry-run dir1 dir2 and rsync -rlv --ignore-existing --dry-run dir1
dir2 print the same 3 files, which indeed do not exist on the target.
However, rsync -rlvt --dry-run dir1 dir2 and rsync -rlvt --ignore-existing
--dry-run dir1 dir2 print a few hundred files. Most of them, with the exception
of the mentioned 3, exist in dir2. It seems that --ignore-existing takes no
effect when combined with -t: the number of lines returned is the same in both
cases.
Case of --size-only: I expanded the above combination with --size-only (--help:
skip files that match in size), which in my opinion should be sufficient for my
use-case on its own, but it didn't help either.
Summary: Apparently combining the -t option with --ignore-exisitng or
--size-only renders the latter useless. Assuming the best case, their --help
strings are inprecise enough that their wrong behaviour is assumed.
-- System Information:
Debian Release: 12.4
APT prefers stable-security
APT policy: (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.1.0-17-amd64 (SMP w/12 CPU threads; PREEMPT)
Kernel taint flags: TAINT_WARN, TAINT_FIRMWARE_WORKAROUND
Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages rsync depends on:
ii init-system-helpers 1.65.2
ii libacl1 2.3.1-3
ii libc6 2.36-9+deb12u3
ii liblz4-1 1.9.4-1
ii libpopt0 1.19+dfsg-1
ii libssl3 3.0.11-1~deb12u2
ii libxxhash0 0.8.1-1
ii libzstd1 1.5.4+dfsg2-5
ii lsb-base 11.6
ii sysvinit-utils [lsb-base] 3.06-4
ii zlib1g 1:1.2.13.dfsg-1
rsync recommends no packages.
Versions of packages rsync suggests:
ii openssh-client 1:9.2p1-2+deb12u2
ii openssh-server 1:9.2p1-2+deb12u2
ii python3 3.11.2-1+b1
pn python3-braceexpand <none>
-- no debconf information