Rsync parity: output and logging options (--itemize-changes, --out-format, --info, --debug, --list-only, --files-from, --human-readable) #122

Closed
opened 2026-07-21 16:23:39 +02:00 by TapTap · 0 comments
Owner

FastSync currently has --progress (MB/s display) and -v/--verbose (debug logging). Rsync provides rich output control that FastSync should support:

Missing flags

  • -i, --itemize-changes — show per-file change summary (e.g., <f.st...... format)
  • --out-format <FORMAT> — custom output format string
  • --info <FLAGS> — fine-grained info verbosity control
  • --debug <FLAGS> — fine-grained debug verbosity control
  • --list-only — list files instead of copying
  • --stats — give file-transfer stats (finding 4 from feature-scout, issue #98)
  • --log-file <FILE> — log output to a file (finding 13 from feature-scout, issue #104)
  • --log-file-format <FORMAT> — custom log format
  • -h, --human-readable — human-readable size formatting (finding 28 from feature-scout)
  • --msgs2stderr — send messages to stderr (useful for scripting)
  • --8-bit-output — leave high-bit chars unescaped
  • --no-motd — suppress daemon-mode motd

Current code

  • src/client/client_send.c:447-456 — basic progress display (MB/s only)
  • src/client/client_send.c:498-554 — no progress in multithreaded mode
  • src/shared/log.c — logs to stderr only, no log file support

Impact

  • --itemize-changes: essential for understanding what the transfer did (backup scripts, CI logs)
  • --out-format: enables integration with monitoring tools
  • --list-only: useful for inspection without transfer
  • --stats: already planned in #98 but important for rsync compatibility

Implementation notes

  • --itemize-changes: track change reason (new file, updated, deleted, metadata change) for each file and print in rsync-compatible format
  • --info/--debug: replace LOG_LEVEL_* with bitmask flags for fine-grained control
  • --list-only: scanner mode that prints file list then exits without connecting
FastSync currently has `--progress` (MB/s display) and `-v/--verbose` (debug logging). Rsync provides rich output control that FastSync should support: ## Missing flags - `-i, --itemize-changes` — show per-file change summary (e.g., `<f.st......` format) - `--out-format <FORMAT>` — custom output format string - `--info <FLAGS>` — fine-grained info verbosity control - `--debug <FLAGS>` — fine-grained debug verbosity control - `--list-only` — list files instead of copying - `--stats` — give file-transfer stats (finding 4 from feature-scout, issue #98) - `--log-file <FILE>` — log output to a file (finding 13 from feature-scout, issue #104) - `--log-file-format <FORMAT>` — custom log format - `-h, --human-readable` — human-readable size formatting (finding 28 from feature-scout) - `--msgs2stderr` — send messages to stderr (useful for scripting) - `--8-bit-output` — leave high-bit chars unescaped - `--no-motd` — suppress daemon-mode motd ## Current code - `src/client/client_send.c:447-456` — basic progress display (MB/s only) - `src/client/client_send.c:498-554` — no progress in multithreaded mode - `src/shared/log.c` — logs to stderr only, no log file support ## Impact - `--itemize-changes`: essential for understanding what the transfer did (backup scripts, CI logs) - `--out-format`: enables integration with monitoring tools - `--list-only`: useful for inspection without transfer - `--stats`: already planned in #98 but important for rsync compatibility ## Implementation notes - `--itemize-changes`: track change reason (new file, updated, deleted, metadata change) for each file and print in rsync-compatible format - `--info`/`--debug`: replace `LOG_LEVEL_*` with bitmask flags for fine-grained control - `--list-only`: scanner mode that prints file list then exits without connecting
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#122