Rsync parity: extended delete options #128

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

FastSync currently only has --delete (delete files on receiver not in source manifest). Rsync provides several more delete options:

Missing flags

  • --delete-excluded — also delete excluded files (finding 18)
  • --delete-missing-args — delete dest files missing from source args
  • --force — force delete non-empty directories
  • --max-delete <n> — safety limit on deletions
  • --ignore-errors — delete even if I/O errors occur
  • --remove-source-files — remove source after transfer

Current code

  • client_send.c — manifest tracking for --delete
  • server.c — processes STATUS_MANIFEST
  • protocol.h — STATUS_MANIFEST exists

Impact

  • --delete-excluded: excluded files remain on receiver with current --delete
  • --force: deleting non-empty dirs fails silently
  • --max-delete: safety net for accidental mass deletion
  • --remove-source-files: migration/archival workflows

Implementation notes

  • --delete-excluded: mark excluded files for deletion in manifest
  • --force: add rmtree/recursive unlink
  • --max-delete: count deletions, abort at threshold
  • --remove-source-files: unlink source after successful send
FastSync currently only has `--delete` (delete files on receiver not in source manifest). Rsync provides several more delete options: ## Missing flags - `--delete-excluded` — also delete excluded files (finding 18) - `--delete-missing-args` — delete dest files missing from source args - `--force` — force delete non-empty directories - `--max-delete <n>` — safety limit on deletions - `--ignore-errors` — delete even if I/O errors occur - `--remove-source-files` — remove source after transfer ## Current code - `client_send.c` — manifest tracking for `--delete` - `server.c` — processes STATUS_MANIFEST - `protocol.h` — STATUS_MANIFEST exists ## Impact - `--delete-excluded`: excluded files remain on receiver with current `--delete` - `--force`: deleting non-empty dirs fails silently - `--max-delete`: safety net for accidental mass deletion - `--remove-source-files`: migration/archival workflows ## Implementation notes - `--delete-excluded`: mark excluded files for deletion in manifest - `--force`: add rmtree/recursive unlink - `--max-delete`: count deletions, abort at threshold - `--remove-source-files`: unlink source after successful send
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#128