Вопрос

Если я создал метку в TFS, присвоив ее нескольким файлам, мои коллеги не смогут изменить версии файлов (или добавить другие файлы) к этой метке.Мы получаем эту ошибку:

TF14077: The owner of a label cannot be changed. 

Исследуя проблему, я обнаружил Эта статья, в котором говорится:

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

Как бы я ни старался, я не могу найти никаких упоминаний об «общих ярлыках».Насколько я понимаю, у лейбла должен быть владелец.

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


Обновлять:Я полагаю, что если я не смогу создать по-настоящему общий ярлык, я могу, по крайней мере, дать пользователям право редактировать ярлыки, созданные их коллегами.Это довольно явно поддерживается.Обычный Автор пользователи не имеют этого права, но согласно MSDN (см. статью Разрешения сервера Team Foundation, под Разрешения системы управления версиями), оно может быть предоставлено путем ЭтикеткаДругое разрешение:

Разрешения на управление источником специфичны для файлов и папок исходного кода.Вы можете установить эти разрешения, щелкнув правой кнопкой мыши папку или файл в исходном исследователе управления, щелкнув свойства и на вкладке «Безопасность», выбрав пользователя или группы, для которой вы хотите изменить разрешения, а затем редактировать разрешения, указанные в разрешениях.Вы можете установить эти разрешения, используя утилиту командной строки TF для управления источником.

...

Администрирование ярлыков | TF: ЭтикеткаДругое | Пользователи, которые имеют это разрешение, могут редактировать или удалять этикетки, созданные другим пользователем.

Поэтому я назначил это право группе доменов, в которую входят все разработчики, как было предложено выше.Я могу проверить, что он установлен, используя разрешение TF команда:

tf permission /group:"CORP\Web Team"

и результат такой, как и ожидалось (я также назначил Label, просто ради интереса)

===============================================================================
Server item: $/Test1/TeamBuildTypes (Inherit: Yes)
  Identity: CORP\Web Team
    Allow:
    Deny:
    Allow (Inherited): Label, LabelOther
    Deny (Inherited):

Однако моему тестовому пользователю по-прежнему не разрешено редактировать созданную мной метку.

Это было полезно?

Решение 2

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

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

  • Разработчики выполняют свою «грязную» работу в своей частной ветке, не опасаясь случайно выпустить что-то или даже помешать своим коллегам.
  • Когда у них есть что-то готовое для интеграции, они объединяют изменения в ветку разработки.Мы делаем там постоянные сборки и тестируем результаты.
  • Когда интегрированная сборка полностью протестирована и готова к развертыванию, изменения переносятся в производственную ветку.Это построено и развернуто.

Я сказал, что хочу

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

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

Другие советы

Будут ли наборы полок лучшим решением для того, что вы делаете?IIRC существует довольно богатый API для работы с наборами полок, например, для их фиксации в рамках процесса сборки (или другого).

Когда я использовал его, я обнаружил, что метки в TFS очень ограничены.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top