The sender never probes a directory's/symlink's destination state, so every non-root dir renders cd+++++++++ and re-runs over-name symlinks/empty dirs. This keeps -i/--itemize-changes and --progress at ⚠️.
Work: answer STATUS_MKDIR/STATUS_SYMLINK with the same STATUS_DEST_INFO snapshot the regular-file STATUS_CHECK path already emits (keyed on report_dest_info), and have client_report.c consume it. This closes two ⚠️ rows.
Files: src/server/receiver.c (mkdir/symlink handlers), src/shared/protocol.h, src/shared/format.c, src/client/client_report.c. Wire: extend the existing STATUS_DEST_INFO to dir/symlink; bump protocol.
The sender never probes a directory's/symlink's destination state, so every non-root dir renders `cd+++++++++` and re-runs over-name symlinks/empty dirs. This keeps `-i/--itemize-changes` and `--progress` at ⚠️.
**Work:** answer `STATUS_MKDIR`/`STATUS_SYMLINK` with the same `STATUS_DEST_INFO` snapshot the regular-file `STATUS_CHECK` path already emits (keyed on `report_dest_info`), and have `client_report.c` consume it. This closes two ⚠️ rows.
Files: `src/server/receiver.c` (mkdir/symlink handlers), `src/shared/protocol.h`, `src/shared/format.c`, `src/client/client_report.c`. Wire: extend the existing `STATUS_DEST_INFO` to dir/symlink; bump protocol.
Fixed in PR #327 (protocol 2.30.0). STATUS_MKDIR/STATUS_SYMLINK now carry a destination-state probe (with target_matches on STATUS_DEST_INFO); -i/--out-format/--progress render rsync's .d..t....../cLc........ and suppress unchanged dirs/symlinks, in both the sequential and --threads paths and the --chunk-serialization path. Differential-tested against rsync 3.4.1. Residual: the unconditional root ./ line. Closing as completed.
Fixed in PR #327 (protocol 2.30.0). `STATUS_MKDIR`/`STATUS_SYMLINK` now carry a destination-state probe (with `target_matches` on `STATUS_DEST_INFO`); `-i`/`--out-format`/`--progress` render rsync's `.d..t......`/`cLc........` and suppress unchanged dirs/symlinks, in both the sequential and `--threads` paths and the `--chunk-serialization` path. Differential-tested against rsync 3.4.1. Residual: the unconditional root `./` line. Closing as completed.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The sender never probes a directory's/symlink's destination state, so every non-root dir renders
cd+++++++++and re-runs over-name symlinks/empty dirs. This keeps-i/--itemize-changesand--progressat ⚠️.Work: answer
STATUS_MKDIR/STATUS_SYMLINKwith the sameSTATUS_DEST_INFOsnapshot the regular-fileSTATUS_CHECKpath already emits (keyed onreport_dest_info), and haveclient_report.cconsume it. This closes two ⚠️ rows.Files:
src/server/receiver.c(mkdir/symlink handlers),src/shared/protocol.h,src/shared/format.c,src/client/client_report.c. Wire: extend the existingSTATUS_DEST_INFOto dir/symlink; bump protocol.Fixed in PR #327 (protocol 2.30.0).
STATUS_MKDIR/STATUS_SYMLINKnow carry a destination-state probe (withtarget_matchesonSTATUS_DEST_INFO);-i/--out-format/--progressrender rsync's.d..t....../cLc........and suppress unchanged dirs/symlinks, in both the sequential and--threadspaths and the--chunk-serializationpath. Differential-tested against rsync 3.4.1. Residual: the unconditional root./line. Closing as completed.