Поделиться через


Требовать создание ветвей в папках

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Если у вас много людей, взаимодействующих в репозитории, количество и имена ветвей могут быстро выйти из контроля. Иерархические папки — эффективный способ упорядочить хаос. Azure DevOps Services, TFS и Visual Studio обрабатывают / как разделитель папок и по умолчанию автоматически сворачивают папки. Таким образом, вам не нужно проходить через каждую ветвь, чтобы найти тот, который вы ищете. Вы не должны полагаться на всех, чтобы все правильно сделали. Azure Repos и TFS могут обеспечивать правильное использование папок ветвей.

Планирование

Определите структуру папок, которую вы хотите разрешить. Например, мы настроим наш репозиторий для применения следующих правил:

  • В корневом каталоге репозитория может существовать только main.
  • Всем пользователям будет разрешено создавать ветви в feature/ и users/ папках.
  • Администраторы смогут создавать ветви в папке release/.

Примечание.

Дополнительные примеры и сведения о стратегиях именования ветвей см. в внедрении стратегии ветвления Git.

Подготовка

  • Вам потребуется команда управления версиями Team Foundation (tf.exe).
  • Вам потребуется URL-адрес учетной записи или коллекции, имя проекта и имя репозитория. В этом примере мы будем использовать https://fabrikam-fiber.visualstudio.com, FabrikamProjectи FabrikamRepo.

Примечание.

Команда tf.exe по умолчанию идёт в комплекте с Visual Studio. Доступ к нему можно получить с помощью командной строки разработчика . Для получения дополнительных параметров скачайте Team Explorer.

Принудительное применение разрешений

Выполните следующие команды в командной строке разработчика в разделе Пуск>Visual Studio>. Каждой команде предшествует объяснение того, что она делает. Если у вас нет закэшированного личного маркера доступа (например, если вы вошли на веб-портал Azure DevOps Services), вам будет предложено войти в систему.

Сначала блокируйте разрешение Create Branch в корневом каталоге репозитория для участников проекта.

tf git permission /deny:CreateBranch /group:[FabrikamProject]\Contributors /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo

Затем разрешите участникам создавать ветви в feature и users.

tf git permission /allow:CreateBranch /group:[FabrikamProject]\Contributors /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo /branch:feature
tf git permission /allow:CreateBranch /group:[FabrikamProject]\Contributors /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo /branch:users

Разрешить администраторам создавать ветви в release.

tf git permission /allow:CreateBranch /group:"[FabrikamProject]\Project Administrators" /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo /branch:release

Наконец, разрешите администраторам создать ветвь с именем main (если она когда-либо случайно удаляется).

tf git permission /allow:CreateBranch /group:"[FabrikamProject]\Project Administrators" /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo /branch:main

Примечание.

Дополнительные сведения, см. в tf git разрешения. Вы также можете получить доступ к справке по этим командам из командной строки, выполнив tf git /? и tf git permission /?.

Переименование старых ветвей

  1. Откройте репозиторий в Интернете и выберите раздел Ветки.

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

  3. Выберите контекстное меню (кнопка ...) и выберите Создать ветвь.

    меню

  4. Введите новое имя ветви, например users/frank/readme-fix. Выберите Создать ветвь.

    Создание ветви

  5. Выберите красный значок корзины рядом с названием старой ветки, чтобы удалить её.

    Удаление старой ветви

Примечание.

Любые настраиваемые разрешения или политики ветви, которые вы настроили, не будут перенесены.