Ответ 1
Здесь есть два вопроса:
1) Лучше ли копировать/вставлять или вставлять?
Я бы рискнул сказать, что копирование/вставка никогда не подходит. Если вы не будете очень осторожны (как минимум, запустите "tfpt treeclean" непосредственно перед копированием), вероятно, вы закончите проверку некоторых неприемлемых файлов на новое место. Кроме того, вы будете использовать FAR больше дискового пространства на сервере, так как он должен хранить 50+ полных копий, а не просто diff.
Практически нет опасности, что ветки "случайно" начнут спускаться по линии. Объединение ветвей назад вместе включает в себя как минимум 3 преднамеренных шага: отложите слияние (сам по себе 4-страничный мастер), затем разрешите все конфликты, затем проверьте.
И вы, вероятно, не смутитесь о своем месте в дереве. TFS использует ветвь "path space". Это означает, что ветки отображаются пользователю как отдельные физические местоположения в исходном дереве, а не просто теги версии поверх одного и того же пути. Поскольку ветки выглядят как папки, вы можете выполнять на них все обычные операции с папками: Cloak (не загружать их в локальную рабочую область), Permission (в частности, удалять кого-либо. Разрешение на чтение гарантирует, что они даже не смогут его увидеть) Удалить или уничтожить (когда вы действительно сделали с ними).
2) Когда уместно создать новый проект команды?
Это более сложная тема в целом. Официальное руководство. Мое мнение.
Однако я бы сказал, что ваше дело легко: не делайте этого. У проектов команды много накладных расходов. Существует конечное число, которое вы можете создать на сервере... когда-либо. Не забывайте и о других формах накладных расходов, например, о времени, которое требуется администратору проекта для переноса по всем вашим настройкам, и времени, которое каждый разработчик в вашей команде тратит на повторное подключение своего Team Explorer.
Все для чего? В приведенных выше ссылках подробно описываются формы подструктуры, которые могут быть созданы внутри одного Team Project. Короче говоря, почти все возможно. Единственными областями, которые несколько не хватает, являются команды Queries и Build Definitions, которые ограничены одной папкой контейнера и несколькими настройками, такими как Exclusive Checkout, которые являются "ничего или ничего". Если у вас нет очень большой или очень разнообразной команды, выгоды от отдельных командных проектов за выпуск вряд ли перевесят недостатки.
Конечно, если "релиз" является основным событием, которое сигнализирует об изменении вашей практики SCM, это совсем другая история. Новый SCM = > новый шаблон процесса = > новый командный проект. Но я сомневаюсь, что вы делаете это 50 раз в год:)