Add copy-devices support across client execution paths#2046
Conversation
There was a problem hiding this comment.
💡 Codex Review
rsync/crates/engine/src/local_copy/executor/special.rs
Lines 684 to 698 in 60ddf6b
The new copy‑devices flag is respected when a device node is encountered directly in directory traversal or as an explicit source, but the unsafe‑symlink path still requires devices_enabled() and always calls copy_device. When a user runs oc-rsync --copy-devices --copy-unsafe-links link-to-device dest without --devices, the code at this branch treats the target as a special file, records a skipped non‑regular entry, and never copies the device’s contents as a regular file. This makes --copy-devices ineffective for symlinked devices and diverges from the behaviour for direct device paths. The branch should mirror the directory/sources logic by checking copy_devices_as_files_enabled() and delegating to copy_file when set before falling back to copy_device.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…3506) Phase-1 audit only. Surveys the existing SSH transport surface in crates/rsync_io/src/ssh and the --compress CLI plumbing, catalogs the detection signals available at command-build time (argv -C / -o Compression=yes, ssh -G HOST output, cipher-implied compression), and proposes a phased plan for emitting a stderr warning when SSH and rsync would double-compress the same byte stream. No code or Cargo.toml changes; the recommended Phase 2 wiring point is build_ssh_connection in crates/core/src/client/remote/ssh_transfer.rs.
…3506) Phase-1 audit only. Surveys the existing SSH transport surface in crates/rsync_io/src/ssh and the --compress CLI plumbing, catalogs the detection signals available at command-build time (argv -C / -o Compression=yes, ssh -G HOST output, cipher-implied compression), and proposes a phased plan for emitting a stderr warning when SSH and rsync would double-compress the same byte stream. No code or Cargo.toml changes; the recommended Phase 2 wiring point is build_ssh_connection in crates/core/src/client/remote/ssh_transfer.rs.
Summary
Testing
Codex Task