I'm trying to use Xcode source control dependency managment as demonstrated in the 2013 WWDC video titled Understanding Source Control in Xcode (Session 414). Specifically, minutes 14:45 – 19:00 with Kevin Lindeman (sounds like Peter Overby on NPR).
When using Subversion externals or Git submodules for dependency management, you can specify particular revisions (svn) or commits (git) that a dependency should be at. However, when opening a new Xcode workspace, and the "Check out additional working copies?" dialog appears, the user is given a choice of branches to checkout.
How do I specify to Xcode what particular branch a project's dependency should use?
Example scenario: Workspace Utensils has project Spatula which depends upon project Metallurgy. I'm working on Spatula with Metallurgy on branch "feature_iron" and all my updates (including xccheckout files) are pushed to remote repos. A coworker uses Xcode to checkout Utensils from remote repos, and consequently Xcode offers to check out Metallurgy also. How can Xcode be configured to automatically checkout the "feature_iron" branch of Metallurgy instead of presenting a choice of branches to my coworker?
If this is not possible, then what is the suggested workflow for this typical situation? Is the solution simply that I have inform the coworker?
Also, I noticed that only branches are presented, not tags. This means it is impossible to form a link between a project's HEAD and a particular commit of a dependency.
It has been 2 years since Apple has been encouraging us to use Xcode source control features, but it seems like it is lacking full dependency management features to make that a reality. Or am I missing some simpler workflow that Apple is hinting at?