Совместное использование меток в TFS? - PullRequest
2 голосов
/ 22 октября 2008

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

TF14077: The owner of a label cannot be changed. 

Исследуя проблему, я нашел эту статью , в которой говорится:

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

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

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


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

Разрешения контроля версий специфичные для файлов исходного кода и папки. Вы можете установить эти разрешения щелкнув правой кнопкой мыши папку или файл в Source Control Explorer, нажав Свойства и на вкладке Безопасность, выбор пользователя или группы, для которой Вы хотите изменить разрешения, и затем редактирование разрешений, перечисленных в Права доступа. Вы можете установить эти разрешения с помощью тф утилита командной строки для источника управление.

...

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

Итак, я назначил это право группе «Домен», в которую входят все разработчики, как предложено выше. Я могу убедиться, что он установлен с помощью команды tf разрешение :

tf permission /group:"CORP\Web Team"

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

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

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

Ответы [ 2 ]

1 голос
/ 22 октября 2008

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

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

0 голосов
/ 22 июня 2010

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

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

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

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

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

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

...