Exigir que os branches sejam criados nas pastas

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Quando você tem muitas pessoas colaborando em um repositório, o número e os nomes dos branches podem sair rapidamente do controle. As pastas de ramificação hierárquicas são uma maneira eficaz de domar o caos. O Azure DevOps Services, o TFS e o Visual Studio tratam / como um separador de pastas e recolhem automaticamente as pastas por padrão. Dessa forma, você não precisa percorrer cada branch para encontrar o que está procurando. Você não também não precisa depender de todos para acertar. O Azure Repos e o TFS podem impor o uso correto das pastas dos branches.

Planejamento

Decida qual estrutura de pastas você deseja permitir. Por exemplo, definiremos nosso repositório para impor as seguintes regras:

  • main pode existir na raiz do repositório.
  • Todos os usuários terão permissão para criar branches nas pastas feature/ e users/.
  • Administradores poderão criar branches na pasta release/.

Observação

Para obter mais exemplos e informações sobre estratégias de nomenclatura de branch, consulte Adotar uma estratégia de ramificação do Git.

Preparação

  • Você precisará do comando (tf.exe) do Controle de Versão do Team Foundation.
  • Você precisará da URL da sua conta ou coleção, do nome do projeto e do nome do repositório. Para este exemplo, vamos usar https://fabrikam-fiber.visualstudio.com, FabrikamProject e FabrikamRepo.

Observação

O comando tf.exe é instalado por padrão com o Visual Studio. Você pode acessá-lo por meio do Prompt de Comando do Desenvolvedor. Para obter opções adicionais, baixe o Team Explorer.

Impor permissões

Execute os comandos a seguir no Prompt de Comando do Desenvolvedor, em Iniciar>Visual Studio>Prompt de Comando do Desenvolvedor. Cada comando é precedido por uma explicação do que ele está fazendo. Se você não tiver um token de acesso pessoal armazenado em cache (por exemplo, entrando no portal Web do Azure DevOps Services), será solicitado que você faça logon.

Primeiro, bloqueie a permissão Criar Branch na raiz do repositório para os colaboradores do projeto.

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

Em seguida, permita que os colaboradores criem branches em feature e 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

Permita que administradores criem branches em release.

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

Por fim, permita que administradores criem um branch chamado main (caso ele seja excluído acidentalmente).

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

Observação

Para obter mais informações, consulte permissão tf Git. Você também pode acessar a ajuda desses comandos na linha de comando executando tf git /? e tf git permission /?.

Renomear branches antigos

  1. Abra seu repositório na Web e selecione a exibição Branches.

  2. Localize seu branch existente. Se você não o vir, talvez seja necessário olhar na guia Tudo .

  3. Escolha seu menu de contexto (o botão ...) e escolha Novo branch.

    Criar novo branch

  4. Digite o novo nome do branch, por exemplo , users/frank/readme-fix. Escolha Criar branch.

    Criar um novo branch

  5. Escolha o ícone de lixeira vermelha ao lado do nome do branch antigo para excluí-lo.

    Excluir os branches antigos

Observação

Quaisquer permissões ou políticas de branch personalizadas que você tiver configurado não serão migradas.