Partilhar via


Exigir que ramificações sejam criadas em pastas

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

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

Planeamento

Decida a estrutura de pastas que deseja permitir. Como exemplo, definiremos nosso repositório para aplicar as seguintes regras:

  • main pode existir na raiz do repositório.
  • Todos os usuários terão permissão para criar ramificações sob as feature/ pastas e users/ .
  • Os administradores poderão criar ramificações na release/ pasta.

Nota

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

Preparação

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

Nota

O comando tf.exe é instalado por padrão com o Visual Studio. Você pode acessá-lo através do prompt de comando do desenvolvedor. Para opções adicionais, baixe o Team Explorer.

Impor permissões

Execute os seguintes comandos no prompt de comando do desenvolvedor, em Iniciar>o prompt de comando do desenvolvedor do Visual Studio.> Cada comando é precedido de uma explicação do que está fazendo. Se não tiver um token de acesso pessoal armazenado em cache (por exemplo, iniciando sessão no portal Web dos Serviços de DevOps do Azure), ser-lhe-á pedido para iniciar sessão.

Primeiro, bloqueie a permissão Criar ramificação 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 ramificações 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

Permitir que os administradores criem ramificações em release.

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

Finalmente, permita que os administradores criem uma ramificação chamada main (caso ela seja excluída acidentalmente).

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

Nota

Para obter mais informações, consulte tf git permission. Você também pode acessar a ajuda para esses comandos a partir da linha de comando executando tf git /? e tf git permission /?.

Renomear filiais antigas

  1. Abra seu repositório na Web e selecione a visualização Ramos.

  2. Localize sua filial existente. Se não o vir, poderá ter de procurar no separador Todos .

  3. Escolha seu menu de contexto (o ... botão) e escolha Nova ramificação.

    Criar menu de ramificação

  4. Digite o novo nome da ramificação, por exemplo , users/frank/readme-fix. Escolha Create branch (Criar ramificação).

    Criar nova ramificação

  5. Escolha o ícone vermelho da lixeira ao lado do nome da ramificação antiga para excluí-lo.

    Excluir ramificação antiga

Nota

Quaisquer permissões personalizadas ou políticas de filial que você configurou não serão migradas.