Как мне смоделировать «Центральную библиотеку» в TFS 2010? - PullRequest
1 голос
/ 06 января 2012

В настоящее время я оцениваю TFS 2010 для использования в нашей команде разработчиков в качестве решения для управления версиями вместо Git.Мы являемся магазином Microsoft, в любом случае опускаем руки на Sharepoint и Project Server, поэтому было бы неплохо, чтобы все это работало на одной платформе.

Моя проблема начинается с этого ...

В Git у нас есть модель разработки, в которой СОБСТВЕННАЯ многократно используемая база кода нашей компании хранится в отдельном репозитории.Каждое клиентское решение также имеет свой собственный репозиторий и субмодуль (extern для SVN-наркоманов), связывающий его с нашей общей библиотекой.Чтобы позволить разработчикам добавлять функциональность в нашу общую библиотеку по мере их появления, мы настраиваем отслеживаемую ветвь для каждого подмодуля и объединяем фрагменты функциональности в нашу общую библиотеку по мере их завершения.

Таким образом (в откат к старому искусству ascii) примерное представление о нашей настройке Git будет ...

    Common-Library::(branch) -----> (submodule)::Client-Solution
                        ^                |
                        |-----------------

Эта структура очень важна для нашей эффективности.Это позволяет разработчикам обновлять наши общие библиотеки в контексте, в решении, в то же время, когда они разрабатывают свои клиентские решения.Что еще более важно, он позволяет вновь разработанным функциональным возможностям найти свой путь обратно в нашу общую библиотеку органичным способом, управляемым требованиями, путем слияния из ветви клиента обратно в мастер и в другие клиентские решения.

Моя проблема заключается в том, чтоЯ действительно хочу использовать TFS 2010 для всех других полезных задач рабочего процесса, но мне трудно разобраться, как такая модель может вписаться в возможности Source Control.Это выглядит довольно автономно.До сих пор я не могу найти ничего, описывающего, как настроить внешние ссылки, такие как «подмодуль».

  • Есть ли в TFS 2010 такая возможность?
  • Возможно, мое понимание TFSМодель 2010 года терпит неудачу?
  • Как бы вы настроили модель общей общей библиотеки в TFS 2010?

Ответы [ 2 ]

4 голосов
/ 06 января 2012

Если я вас правильно понимаю, вы можете отобразить это в своих локальных рабочих пространствах, если вы скажете:

$/.../Projects/YourProject

и

$/.../Libs/LibA

Вы можете установить локальное рабочее пространство на

Status  Source Control Folder        Local Folder
Active  $/.../Projects/YourProject   C:\..\YourProject
Active  $/.../Libs/LibA              C:\..\YourProject\Libs

Таким образом, ваши библиотеки могут существовать в любом месте вашего проекта TFS, но локально они будут доступны в разумном месте, которое вы сможете добавить в свое решение.Любые сделанные вами изменения могут быть затем правильно сохранены в репозитории, и все, кто работает с этими общими проектами, увидят его локально в своей рабочей области при обновлении.

Обновление:

Если вы хотитеиспользуйте разветвленную версию, скажем, у вас есть

$/.../Customer1/Libs/LibA

и

$/.../Customer2/Libs/LibA

Обе ветви разветвлены

$/.../Libs/LibA

Если вы выполняете работу для Customer1, то выизмените ваше сопоставление с

Active  $/.../Libs/LibA              C:\..\YourProject\Libs

на

Active  $/.../Customer1/Libs/LibA    C:\..\YourProject\Libs

Все должно быть в том же месте, что и локальная папка не изменилась.

(tbh, этоэто не блестящий пример, но я надеюсь, что это немного прояснит или даст вам некоторые идеи!)

1 голос
/ 07 января 2012

Есть ли у вас такая структура?

enter image description here

Теперь вы можете начать Client 1 и перейти от основной линии Common Lib A к Client 1/devline/Common Lib A

Если вы внесли изменения в Common Lib A и закончили, вы можете объединить ветку в клиенте 1 с основной линией или, возможно, лучше с линией интеграции.

Другим решением является использование общей библиотекив клиентских приложениях в качестве сборок, которые я предпочитаю.

Если я сталкиваюсь с ситуацией, когда чего-то не хватает в общей библиотеке, я создаю новый элемент требования / журнала невыполненных работ для общей библиотеки (он имеет дополнительный путь области)внедрите его в ветку Common Lib A, протестируйте его и разверните в моих приложениях.

Вы можете взглянуть на руководство по ветвлению , если это еще не сделано, возможно,Вы получаете больше идей.

Редактирование на основе комментария

Когда вы переходите, вы можете указать папку с помощью browse.Там вы выбираете целевую ветку.enter image description here

После этого вы можете добавить источники Common Lib A в свои клиентские решения.

...