I've done some thinking about the scenarios that we want to support with
respect to SCM's.
1. CI performs check out of a root folder. b3 providers performs
discovery below the root.
2. Like #1 but b3 performs the check out.
3. Root is huge and it is not desirable to check it out. Provides use
team project sets, maps, or Buckminster style discovery to make a more
precise check out.
We need to be able to specify what the expectations are between b3 and
the CI system, and between the repositories and the providers. #1 and #2
is of course very similar. It boils down to that b3 finds something that
is already checked out, i.e. an policy:
b3 should make no attempt to check out and fail if it's not present.
Trust what is there (i.e. no update) but perform a new check out if it's
Update what is there or perform a new check out if it's missing.
Remove what is there and then perform a new check out.
Fail if something is found at the intended check-out location.
The question is, how do we combine this with #3? Do we simply add a
boolean flag such as "providerCheckout" and then push the policy down to