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

Reply via email to