Skip to content

util: Exclude from iCloud Drive sync on macOS#16728

Merged
weihanglo merged 1 commit intorust-lang:masterfrom
hguandl:util/macos-exclude-icloud
Mar 11, 2026
Merged

util: Exclude from iCloud Drive sync on macOS#16728
weihanglo merged 1 commit intorust-lang:masterfrom
hguandl:util/macos-exclude-icloud

Conversation

@hguandl
Copy link
Contributor

@hguandl hguandl commented Mar 10, 2026

What does this PR try to resolve?

Fixes #16724

As discussed and agreed upon in the linked issue, this PR adds the iCloud Drive exclusion property alongside the existing Time Machine exclusion for macOS.

The specific code changes include:

  • Renamed exclude_from_time_machine to exclude_from_time_machine_and_cloud_sync, and updated the related doc comments and inline comments.
  • Replaced the deeply nested if let tuple match with early returns (match).
  • Added the "NSURLUbiquitousItemIsExcludedFromSyncKey" property to exclude the directory from sync.
  • Introduced a KEY_NAMES array and a for loop to apply the exclusion keys.

How to test and review this PR?

On macOS 11.3+:

  1. Create an arbitrary project under a directory with iCloud sync.
cd ~/Documents
cargo new foo
  1. Build the project via Cargo.
cd foo
cargo build
  1. Inspect the directory.
ls -l@
  1. The output should contain a special extended attribute.
drwxr-xr-x@ 5 hguandl  staff  160  Mar 10 12:34 target
	com.apple.fileprovider.ignore#P	  1  <-------------- This!
  1. In Finder, the target directory should be marked with "Ignored".

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 10, 2026
@rustbot
Copy link
Collaborator

rustbot commented Mar 10, 2026

r? @ehuss

rustbot has assigned @ehuss.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @ehuss, @epage, @weihanglo
  • @ehuss, @epage, @weihanglo expanded to ehuss, epage, weihanglo
  • Random selection from ehuss, epage, weihanglo

Copy link
Member

@weihanglo weihanglo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@weihanglo weihanglo added this pull request to the merge queue Mar 11, 2026
Merged via the queue into rust-lang:master with commit 0263ed6 Mar 11, 2026
29 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 11, 2026
@hguandl hguandl deleted the util/macos-exclude-icloud branch March 11, 2026 02:37
rust-bors bot pushed a commit to rust-lang/rust that referenced this pull request Mar 13, 2026
Update cargo submodule

21 commits in 90ed291a50efc459e0c380d7b455777ed41c6799..cbb9bb8bd0fb272b1be0d63a010701ecb3d1d6d3
2026-03-05 15:11:25 +0000 to 2026-03-13 14:34:16 +0000
- fix(git): preserve SCP-like submodule URLs for fetch (rust-lang/cargo#16744)
- Fix 16732 (rust-lang/cargo#16746)
- fix(rustdoc): switch to new `--emit` options (rust-lang/cargo#16739)
- fix(git): convert SCP-like submodule URLs to ssh:// format (rust-lang/cargo#16727)
- fix(core): typo (rust-lang/cargo#16738)
- CARGO_TARGET_DIR doesn't have to be relative (rust-lang/cargo#16735)
- chore(ci): Detect user changes to src/etc/man (rust-lang/cargo#16736)
- util: Exclude from iCloud Drive sync on macOS (rust-lang/cargo#16728)
- fix(compile): Stop on denying warnings without --keep-going  (rust-lang/cargo#16725)
- feat(shell): Support OSC 9;4 progress on ptyxis (rust-lang/cargo#16730)
- Let git decide when to run gc (rust-lang/cargo#16459)
- chore(deps): update cargo-semver-checks to v0.47.0 (rust-lang/cargo#16723)
- fix(compile): Turn warning summaries into errors also (rust-lang/cargo#16721)
- fix(fix): Switch from ad-hoc to structured warnings (rust-lang/cargo#16711)
- fix: ignore implicit std dependencies in `unused-crate-dependencies` lint (rust-lang/cargo#16677)
- chore(deps): update msrv (3 versions) to v1.92 (rust-lang/cargo#16716)
- chore(deps): update msrv (1 version) to v1.94 (rust-lang/cargo#16710)
- fix(script): surpress `unused_features` lint for embedded (rust-lang/cargo#16714)
- Split `build-dir` lock into dedicated lock  (rust-lang/cargo#16708)
- Add missing truncate when writing .crate files (rust-lang/cargo#16688)
- refactor(fix): Prep for annotate-snippets (rust-lang/cargo#16702)
@rustbot rustbot added this to the 1.96.0 milestone Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Exclude cache directories from iCloud Drive sync on macOS

4 participants