Если я создал метку в TFS, назначив ее нескольким файлам, мои коллеги не смогут изменить версии файлов (или добавить другие файлы) к этой метке. Получаем такую ошибку:
TF14077: The owner of a label cannot be changed.
Изучая проблему, я нашел эту статью, в которой говорится:
Возможно, пользователю будет разрешено манипулировать общей меткой в папке разработки, но управлять только собственными метками в производственной папке. (курсив мой)
Как я ни старался, я не могу найти ни одной ссылки на "общие ярлыки". Насколько я понимаю, у лейбла должен быть владелец.
FWIW, я пытаюсь использовать «плавающую» метку, чтобы разработчики могли указать, что их код готов стать частью сборки, пометив ее определенной меткой. Тогда в процессе сборки просто нужно будет получить все, что имеет этот ярлык, и автоматически получить самые последние материалы, которые действительно готовы к сборке, игнорируя как прошлые версии, так и более новые вещи, которые не готовы к использованию в прайм-тайм.
Обновление: я полагаю, что если я не могу создать действительно общий ярлык, я могу хотя бы дать пользователям право редактировать ярлыки, созданные их коллегами. Это довольно явно поддерживается. Обычные пользователи Contributor не имеют этого права, но, согласно MSDN (см. Статью Разрешения Team Foundation Server в разделе Разрешения системы управления версиями), может быть предоставлено с помощью разрешения LabelOther:
Разрешения системы управления версиями относятся к файлам и папкам с исходным кодом. Вы можете установить эти разрешения, щелкнув правой кнопкой мыши папку или файл в Source Control Explorer, выбрав «Свойства» и на вкладке «Безопасность» выбрав пользователя или группу, для которых вы хотите изменить разрешения, а затем отредактировав разрешения, перечисленные в разделе «Разрешения». Вы можете установить эти разрешения с помощью утилиты командной строки tf для управления версиями.
...
Администрирование этикеток | tf: LabelOther | Пользователи, у которых есть это разрешение, могут редактировать или удалять ярлыки, созданные другим пользователем.
Итак, я назначил это право группе «Домен», в которую входят все разработчики, как было предложено выше. Я могу проверить, что он установлен, с помощью команды tf permission:
tf permission /group:"CORP\Web Team"
и результат ожидаемый (я также присвоил метку, просто для удовольствия)
===============================================================================
Server item: $/Test1/TeamBuildTypes (Inherit: Yes)
Identity: CORP\Web Team
Allow:
Deny:
Allow (Inherited): Label, LabelOther
Deny (Inherited):
Тем не менее, моему тестовому пользователю все еще не разрешено редактировать созданный мной ярлык.