Exclude derived data folders from from Xcode#64
Exclude derived data folders from from Xcode#64mdab121 wants to merge 3 commits intostevegrunwell:developfrom
Conversation
Co-authored-by: Jed Fox <git@jedfox.com>
stevegrunwell
left a comment
There was a problem hiding this comment.
Thank you for the addition!
stevegrunwell
left a comment
There was a problem hiding this comment.
The tests failing here made me dig deeper, and I'm hoping someone with Xcode experience can help provide context.
From what I've read, Xcode will store build artifacts in the DerivedData/ directory, and this is usually(?) at a system-wide level (e.g. ~/Library/Developer/Xcode/DerivedData) — is this correct? If so, Asimov would be better-served blocking that directory.
As it stands now, the code in this PR tells Asimov "Look for a DerivedData directory that sits adjacent to...itself", which seems like a roundabout way of saying "Block all DerivedData directories from Time Machine backups. However, that runs counter to Asimov's more conservative "make sure there's a matching dependency file so we don't block anything accidentally" ethos.
Granted, "DerivedData" seems very unlikely to be anything else on a developer's machine (save for perhaps some Swift developer's musical side-project), but I'd like to better understand this directory before including it in Asimov, please.
|
Hey! Thanks for the response. You're right, that the However it's very common to have it in the project directory. I do that as an iOS developer, and I know many other devs that do. That's why it's also listed in the default It's really a time machine killer, because these tend to be ~1GB even for a simple XCode project. What i can suggest is to make it conditional to exclude |
I think that makes the most sense, but it'll require refactoring how the We want to make sure that whatever we do here is still performant, but adding wildcard support would open up some opportunities. |
…upport Add glob pattern support for sentinel definitions so wildcards like *.xcodeproj can be used. Sentinels containing '*' use sh -c with ls -d for glob expansion instead of test -e, with no performance impact. Add DerivedData *.xcodeproj entry to exclude Xcode build artifacts when an Xcode project is present alongside the DerivedData directory. Inspired by stevegrunwell#64 (props @mdab121).
No description provided.