Вы ссылались на это руководство:
http://www.codeplex.com/TFSGuide
Я только что написал руководство по TFS для нашей компании, и мы следовали большинству рекомендаций из этого руководства.
Структура, которую мы используем, такова:
TeamProject1
Main
Source
ClassLibrary1
ClassLibrary2
CommonCodeLibrary
TeamProject1Web
Releases
Release1
Source
ClassLibrary1
ClassLibrary2
CommonCodeLibrary
TeamProject1Web
Release2
Source
ClassLibrary1
ClassLibrary2
CommonCodeLibrary
TeamProject1Web
TeamProject2
Main
Source
ClassLibrary1
CommonCodeLibrary
TeamProject2Web
Releases
Release1
Source
ClassLibrary1
CommonCodeLibrary
TeamProject2Web
Release2
Source
ClassLibrary1
CommonCodeLibrary
TeamProject2Web
SharedTeamProject //this would represent a set of code that's used in other team projects
Main
Source
CommonCodeLibrary
Releases
Release1
Source
CommonCodeLibrary
Release2
Source
CommonCodeLibrary
В основном мы разветвляем проект Main \ Source на ветку Releases \ Releasex, когда пришло время сделать релиз.
Для кода, который используется несколькими проектами, мы создаем отдельный командный проект для этого кода, а затем разделяем его на отдельные командные проекты. В приведенном ниже примере SharedTeamProject представляет общий код. Например, мы бы поделили CommonCodeLibrary на обучение папок Main \ Source для отдельных командных проектов.
Для специфичных для клиента выпусков вы можете просто создать соответствующие ветки для них.
Я думаю, главное - придумать схему, с которой ваша команда соглашается (в основном), понимает и желает следовать. Убедитесь, что эта схема хорошо задокументирована и соблюдается. Последовательность в структуре является одним из ключей к успешной системе контроля версий.