Ramificar pastas e arquivos

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 | Visual Studio | 2019 Visual Studio 2017 | Visual Studio 2015 | Visual Studio 2013

Você pode usar ramificações para realizar as seguintes metas:

  • Gerenciar trabalho simultâneo com várias equipes na mesma base de código
  • Isolar riscos que são apresentados por conjuntos diferentes de alterações na base de código
  • Tirar instantâneos e oferecer suporte às alterações isoladas subsequentes (por exemplo, criar uma ramificação de versão)

Por exemplo, a ilustração a seguir mostra como a empresa DinnerNow desenvolveu uma estrutura de ramificação para satisfazer suas necessidades comerciais.

A captura de tela a seguir mostra a estrutura do branch DinnerNow na janela Hierarquia.

Hierarchy window

A Equipe A de Recursos e a Equipe de Recursos B fazem seu trabalho em branches separados. Quando as equipes estiverem prontas para integrar seus trabalhos, elas mesclarão suas ramificações na ramificação Dev. Quando as compilações da ramificação Dev estiverem estáveis e prontas para teste, as equipes mesclarão a ramificação Dev na ramificação Teste.

Ao passo que cada versão é lançada, a ramificação Principal é transformada em uma nova ramificação de versão, como a ramificação Version1 e a Version2. Seguindo esta estratégia, a empresa pode aprimorar ou corrigir cada versão anterior do produto separadamente, se necessário.

Você pode executar uma operação de ramificação usando o Gerenciador de Controle de Origem, como demonstra este tópico, ou o comando Branch em um prompt de comando. Para obter mais informações, consulte o Comando branch.

Dica

A ramificação é uma técnica importante e poderosa para criar um conjunto paralelo de versões dos arquivos. No entanto, usar as ramificações pode adicionar complexidade e custo ao seu projeto. Por exemplo, quando você mescla duas ramificações, pode ter que resolver conflitos.

Antes de criar uma ramificação, você deve considerar se pode satisfazer melhor suas necessidades através da aplicação de um rótulo. Aplicando um rótulo, você pode obter de forma rápida e fácil um instantâneo do estado dos seus arquivos para que você possa recuperar ou compilar posteriormente os arquivos nesse estado. Para obter mais informações, consulte Usar rótulos para tirar um instantâneo de seus arquivos.

Pré-requisitos

  • Para converter uma pasta em um branch, sua permissão Gerenciar branch deve ser definida como Permitir.
  • Para ramificar uma ramificação, sua permissão Gerenciar branch deve ser definida como Permitir os caminhos para os branches de origem e de destino. A permissão Mesclagem para o caminho do branch de destino deve ser definida como Permitir.
  • Para ramificar uma pasta ou arquivo, sua permissão de check-out e sua permissão mesclagem para o caminho de destino devem ser definidas como Permitir.

Para obter mais informações, consulte permissões TFVC padrão.

Converter uma pasta em um branch

O lançamento do Visual Studio Team Foundation Server 2010 iniciou uma distinção entre branches e pastas. A ilustração a seguir mostra o nível superior da estrutura de pastas DinnerNow:

Estrutura de pastas DinnerNow no Gerenciador do Controle do Código-Fonte

Folder structure in Source Control Explorer

Como mostra a ilustração, você ainda pode usar pastas para organizar branches dentro da hierarquia de controle de versão de um projeto. Porém, pastas e ramificações têm uma aparência e recursos diferentes. Ao clicar com o botão direito do mouse em uma pasta ou branch e clicar em Propriedades, você exibe informações diferentes e funcionalidades diferentes.

Quando você executa operações de ramificação, as ramificações têm vantagens importantes sobre as pastas. Ramificações dão suporte a recursos de controle de versão que fornecem visibilidade extra em sua estrutura de ramificação e em onde seus conjuntos de alterações foram mesclados. (Para obter mais informações, consulte os links na seção Consulte Também mais adiante neste tópico.)

Embora você ainda possa ramificar e mesclar entre pastas, a melhor prática para a sua equipe é ramificar e mesclar apenas entre ramificações. O seguinte procedimento explica como converter uma pasta a uma ramificação.

  1. No Gerenciador de Controle do Código-Fonte, verifique se a pasta que você deseja converter existe no servidor.

  2. Se o ícone de adição pendente (TFSC Pending Addition Status Icon) for exibido ao lado da pasta, clique com o botão direito do mouse na pasta e clique em Verificar Alterações Pendentes.

  3. Clique com o botão direito do mouse na pasta que você deseja converter, aponte para Ramificação e Mesclagem e clique em Converter em Branch.

    A caixa de diálogo Converter Pasta em Branch é exibida.

    Importante

    Se você estiver convertendo uma pasta que já ramificou, provavelmente deverá selecionar a caixa de seleção Executar essa conversão recursivamente para todas as pastas filho ramificadas . Esta opção também converte em ramificações todas as pastas que foram ramificadas desta pasta.

  4. (Opcional) No campo Proprietário , digite o nome da pessoa que possui essa ramificação.

    Observação

    O campo Proprietário é somente para informações. Ter o nome mencionado no campo Proprietário não concede permissão adicional.

  5. (Opcional) No campo Descrição , digite informações que você acha que seriam úteis para outros membros da equipe que devem usar esse branch ou entender sua finalidade.

  6. Clique em Converter.

Importante

Você não pode aninhar ramificações; portanto, você não poderá converter nenhuma pasta em uma ramificação se ela contiver uma ramificação ou estiver contida por uma ramificação. Por exemplo, a ilustração a seguir mostra como nem o pai nem o filho do branch FeatureTeamA podem ser convertidos em um branch.

Nested branches are not allowed

Depois de converter uma pasta em uma ramificação, você pode convertê-la novamente em uma pasta se sua equipe decide alterar a estrutura da ramificação.

Converter um branch em uma pasta

  1. No Gerenciador de Controle de Origem, clique no branch que você deseja converter.
  2. No menu Arquivo , aponte para o Controle do Código-Fonte, aponte para Ramificação e Mesclagem e clique em Converter em Pasta.
  3. Quando a mensagem Converter Branch De Volta para Pasta for exibida, clique em Sim.

Ramificar uma ramificação

Depois de converter uma pasta em uma ramificação, você pode criar outras ramificações a partir dessa ramificação. O procedimento a seguir mostra como você pode usar a interface gráfica do usuário do Visual Studio para ramificar uma ramificação. (Para obter informações sobre como executar essa tarefa no prompt de comando, consulte o Comando branch.)

  1. No Gerenciador de Controle de Origem, clique com o botão direito do mouse no branch que você deseja ramificar, aponte para Ramificação e Mesclagem e clique em Branch.

    O Branch da caixa de diálogo é exibido.

  2. Na caixa Nome do Branch de Destino , especifique o caminho do novo branch.

  3. (Opcional) Na seção Branch da versão , clique em uma das seguintes opções na lista Por :

    • Se você clicar na Versão Mais Recente, o branch será criado para a versão mais recente no controle de versão.

    • Se você clicar em Conjunto de Alterações, poderá especificar o número do conjunto de alterações na caixa Conjunto de Alterações . Como alternativa, clique nas reticências (...) para abrir a caixa de diálogo Localizar Conjuntos de Alterações .

      Para obter mais informações, consulte Localizar e exibir conjuntos de alterações.

    • Se você clicar em Data, poderá especificar uma data na caixa Data .

  4. Clique em Branch.

    O branch é criado e aparece no Gerenciador de Controle do Código-Fonte.

    Observação

    Ao contrário da maioria das operações de controle de versão, essa operação não gera uma alteração pendente. Em vez disso, a operação é concluída imediatamente e você não pode desfazê-la.

Ramificar uma pasta ou um arquivo

Embora você pode ramificar um arquivo ou pasta diretamente, recomendamos que você evite fazê-lo. Caso contrário, você não poderá exibir sua hierarquia de branch ou controlar seus conjuntos de alterações. A prática recomendada é ramificar e mesclar apenas entre ramificações, conforme descrito anteriormente neste tópico.

Mas, se você tiver uma necessidade especial de ramificar uma pasta ou um arquivo, poderá usar o seguinte procedimento para executar esta tarefa. (Para obter informações sobre como executar essa tarefa no prompt de comando, consulte o Comando branch.)

  1. No Gerenciador de Controle de Origem, clique com o botão direito do mouse na pasta ou arquivo que você deseja ramificar, aponte para Ramificação e Mesclagem e clique em Branch.

    A caixa de diálogo Branch é exibida.

  2. Na caixa Destino , modifique o local e o nome do novo branch.

    Você também pode clicar em Procurar para especificar um destino.

  3. Na seção Branch da versão , clique em uma das seguintes opções na lista Por :

    • Se você clicar na Versão Mais Recente, o branch será criado para a versão mais recente no controle de versão.

    • Se você clicar em Conjunto de Alterações, poderá especificar o número do conjunto de alterações na caixa Conjunto de Alterações . Como alternativa, você pode clicar nas reticências (...) para abrir a caixa de diálogo Localizar Conjuntos de Alterações .

      Para obter mais informações, consulte Localizar e exibir conjuntos de alterações.

    • Se você clicar em Data, poderá especificar uma data na caixa Data .

    • Se você clicar em Rótulo, poderá digitar o nome do rótulo na caixa Rótulo . Como alternativa, você pode clicar nas reticências (...) para abrir a caixa de diálogo Localizar Rótulo .

      Para obter mais informações, consulte Usar rótulos para tirar um instantâneo de seus arquivos.

    • Se você clicar na Versão do Workspace, o branch será criado para a versão em seu workspace.

  4. (Opcional) Selecione a caixa de seleção Criar cópias de trabalho locais para a nova caixa de seleção de branch para criar uma cópia do item controlado pela versão no workspace local. Desmarque a caixa de seleção se você não precisa de uma cópia local e se deseja melhorar o desempenho não baixando muitos itens para seu computador.

  5. Clique em OK.

    O branch é criado e aparece no Gerenciador de Controle de Origem.

    Observação

    Uma janela Procurar Pasta será exibida se você tiver selecionado a caixa de seleção Criar cópias de trabalho locais para a nova caixa de seleção de branch e a pasta local especificada não estiver mapeada no workspace atual. Procure uma pasta ou clique em Criar Nova Pasta, especifique uma pasta para sincronizar com os itens controlados pela versão e clique em OK.