TFS2010 Ветвление в подпапку другой ветки - PullRequest
2 голосов
/ 16 сентября 2010

В нашем контроле исходного кода есть структура папок, в которой некоторые элементы разветвлены, а некоторые нет.
Разветвленный материал следует (стандартному?) Шаблону ветвей Production, Main, Development плюс случайная ветвь для большого проекта.

Иногда в рамках этих больших проектов веб-ветка некоторые вещи, которые обычно не разветвляются. Например, мы можем перейти $/source/Libraries/LibraryA в $/source/branches/Project1/LibraryA, чтобы внести в него серьезные Project1 связанные с ним изменения.
Затем, когда Project1 приближается к выпуску, мы производим обратную интеграцию как с Project1 в ветку Main, так и с Project1/LibraryA в папку Libraries.

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

Есть ли способ обойти это? Неправильно ли мы используем TFS2010, и если да, то какой путь будет правильным?

Ответы [ 2 ]

3 голосов
/ 16 сентября 2010

Как я подробно описал в " Team Foundation Server и характеристиках ветвления по сравнению с другими ", модель ветвления TFS довольно сильно изменилась между TFS2008 и TFS2010.
Руководство по ветвлению TFS и Руководство по ветвлению может помочь.

См. в этой теме для получения более подробной информации об управлении филиалами:

В TFS 2010 пользователь должен иметь разрешение «Управление ветвями», установленное на «Разрешить» для указанного пути, чтобы выполнять следующие действия:

  • Преобразование папок в ветви (и ветви обратно в папки)
  • Обновление метаданных для ветки (т.е. владелец, описание)
  • Создание дополнительных дочерних веток из исходной ветки
  • Изменить отношения между ветвями с помощью отношений слияния (то есть, родительских ветвей)

W В TFS 2010 пользователь должен иметь разрешение на слияние, разрешенное для данного пути, для следующих действий:

  • Ожидание операций слияния для веток, папок и файлов по указанному пути

Разрешения на управление филиалами и слияниями являются новыми для TFS 2010.

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

В VS 2010 ветви теперь являются первоклассным объектом и поэтому имеют значок ветви, который легко отличает ветвь от папки (со значком папки).

См. Также эту ветку со сценарием, более близким к вашей ситуации.

Для общих библиотек я обычно предпочитаю использовать ссылки на файлы, а не ссылки на проекты.
У меня был бы отдельный TeamProject для разработки исходного кода для этих библиотек.
Вы можете развернуть сборки в общей папке и ссылаться на эти сборки из различных проектов, которые их используют.
Такой подход позволит вам иметь несколько версий сборок. Каждый проект будет создавать ссылки на файлы для конкретной версии, которая им требуется.

0 голосов
/ 15 августа 2016

У меня была похожая проблема.Я пытался создать еще одну ветку в DEV (в отдельной папке) из MAIN, и эта ошибка появилась.

Что решило эту проблему для меня, так это создать новую ветку в корне и затем перенести ее в Dev.

...