I guess this question relates to any source control system, but I'm looking for answers that will work with Team Foundation.
We're starting the work to migrate several of our projects into Foundation Server (getting them out of SourceSafe). As part of this work, we're trying to instill a bit more discipline with our branching.
Thus far the plan is to have a trunk, and to have 2 reasons to branch - either to stabilise the build for release (and thereafter keep that branch locked down to represent what went live), and to prepare large or speculative changes. The intent is to keep trunk clean, representing live code, or code which is definitely going to be included in the next release.
In order to keep trunk clean, we're going to start a policy of not keeping code checked out from trunk overnight. We also have some complex interdependencies, where some projects import files from another tree. The question is, how do I monitor a) that files aren't being left checked out in trunk, and b) that merging changes back into trunk doesn't introduce inappropriate dependencies from the other tree (i.e. suddenly finding out that trunk is referencing a branch in another tree that has subsequently been merged and deleted.
I have found I can list the checkout status of the whole trunk area using the TF command line tool, but is there anything that can be better automated?