Output formatting parity: -i, --out-format, --list-only, --stats, -h units, --progress #292

Closed
opened 2026-09-15 19:33:34 +02:00 by TapTap · 1 comment
Owner

Audit findings (rsync 3.4.1 reference).

  • -i/--itemize-changes always prints >f+++++++++ and never compares size/time/perms/owner; rsync renders per-attribute columns and distinguishes new vs modified.
  • --out-format: %M is raw epoch, %f is the absolute wire path, %b always equals %l, and directory entries produce no line; rsync formats %M as YYYY/MM/DD-HH:MM:SS, %f as the relative display name, %b as true transferred bytes, and emits dirs.
  • --list-only prints absolute paths and omits directory entries.
  • --stats prints a single line to stderr; rsync prints its multi-line block to stdout.
  • -h/--human-readable uses binary (1024, "MB"); rsync -h uses decimal (1000).
  • --progress is an aggregate "Sent X MB" line, not per-file bytes/%/rate/ETA.

Fix or explicitly document each as a divergence in RSYNC_COMPAT.md §2.

Audit findings (rsync 3.4.1 reference). - `-i/--itemize-changes` always prints `>f+++++++++` and never compares size/time/perms/owner; rsync renders per-attribute columns and distinguishes new vs modified. - `--out-format`: `%M` is raw epoch, `%f` is the absolute wire path, `%b` always equals `%l`, and directory entries produce no line; rsync formats `%M` as `YYYY/MM/DD-HH:MM:SS`, `%f` as the relative display name, `%b` as true transferred bytes, and emits dirs. - `--list-only` prints absolute paths and omits directory entries. - `--stats` prints a single line to stderr; rsync prints its multi-line block to stdout. - `-h/--human-readable` uses binary (1024, "MB"); rsync `-h` uses decimal (1000). - `--progress` is an aggregate "Sent X MB" line, not per-file bytes/%/rate/ETA. Fix or explicitly document each as a divergence in RSYNC_COMPAT.md §2.
TapTap added the needs-triage label 2026-09-15 19:33:34 +02:00
Author
Owner

Fixed (main gap) + residual documented. -i now compares size/time/perms/owner/group; %M/%f/--list-only/-h/--stats layout/per-file --progress were already fixed; PR #308 adds directory/transfer-root itemize and --out-format directory lines (rsync-identical), directory metadata on the --delete-during/--delete-delay plan path, the --info=flist header under -i, and root/ancestor lines for -d/--files-from. Residual (documented, row ⚠️): the sender does not probe a directory's destination state, so pre-existing dirs render cd+++++++++, and %b/delta-%c remain protocol-specific. Closing as completed.

Fixed (main gap) + residual documented. `-i` now compares size/time/perms/owner/group; `%M`/`%f`/`--list-only`/`-h`/`--stats` layout/per-file `--progress` were already fixed; PR #308 adds directory/transfer-root itemize and `--out-format` directory lines (rsync-identical), directory metadata on the `--delete-during/--delete-delay` plan path, the `--info=flist` header under `-i`, and root/ancestor lines for `-d`/`--files-from`. Residual (documented, row ⚠️): the sender does not probe a directory's destination state, so pre-existing dirs render `cd+++++++++`, and `%b`/delta-`%c` remain protocol-specific. Closing as completed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#292