Comando Mesclar (Controle de Versão do Team Foundation)

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

Visual Studio 2019 | Visual Studio 2022

O tf merge comando aplica alterações de uma ramificação para outra no Controle de Versão do Team Foundation (TFVC).

Nota

Os resultados desse comando não são refletidos no servidor de DevOps do Azure até que você faça uma operação de check-in. Para obter mais informações, consulte Desenvolver código e gerenciar alterações pendentes.

Pré-requisitos

Para usar o merge comando, você deve ter a permissão Check-out definida como Permitir para a pasta de espaço de trabalho que contém o destination, e deve ter a permissão de Leitura definida como Permitir para a pasta de espaço de trabalho que contém o source. Para obter mais informações, consulte Permissões TFVC padrão.

Sintaxe

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination

Parâmetros

Argumentos

Argumento

Descrição

<versionspec>

Fornece um valor como C2 para a /version opção. Para obter mais informações sobre como o TFVC analisa uma especificação de versão para determinar quais itens estão dentro de seu escopo, consulte Usar comandos de controle de versão do Team Foundation.

<source>

Especifica o arquivo ou pasta a ser usado como a origem da mesclagem.

<destination>

Especifica o arquivo ou pasta a ser atuado como o destino da mesclagem.

<username>

Fornece um valor para a /login opção. Você pode especificar um username valor como um ou usernameDOMAIN\username .

Opções

Opção

Descrição

/recursive

Corresponde à especificação do source item no diretório atual e em quaisquer subpastas.

/force

Ignora o histórico de mesclagem e mescla as alterações especificadas da origem para o destino, mesmo que algumas ou todas essas alterações tenham sido mescladas antes.

/candidate

Imprime uma lista de todos os conjuntos de alterações na origem que ainda não foram mesclados no destino. A lista deve incluir o ID do conjunto de alterações que não foi mesclado e outras informações básicas sobre esse conjunto de alterações. Um asterisco para um determinado resultado indica que ele foi parcialmente mesclado, o que significa que algumas das alterações no conjunto de alterações foram mescladas e outras alterações não foram mescladas.

/discard

Não faz a operação de mesclagem, mas atualiza o histórico de mesclagem para controlar se a mesclagem ocorreu. Isso descarta que um conjunto de alterações seja usado para uma mesclagem específica.

/version

Para uma mesclagem seletiva, essa opção especifica o intervalo que deve ser mesclado no destino. Para uma mesclagem de recuperação, esse parâmetro especifica a versão antes da qual todas as alterações não mescladas devem ser mescladas.

Para uma mesclagem seletiva, o intervalo de versões indica os pontos inicial e final do conjunto de alterações a serem mescladas. Por exemplo, se você tentar mesclar a versão 4~6, os conjuntos de alterações 4, 5 e 6 serão mesclados.

/lock

Especifica um tipo de bloqueio ou remove um bloqueio de um item. Para obter mais informações, consulte Compreender os tipos de bloqueio.

Opções de bloqueio:

  • None: Não coloca um cadeado em um item e remove qualquer bloqueio existente do item.

  • Checkin: Outros usuários podem fazer check-out dos itens especificados, mas não podem fazer check-in de revisões de arquivos bloqueados até que você libere o bloqueio executando um check-in. Se qualquer outro usuário tiver bloqueado qualquer um dos itens especificados, a operação de bloqueio falhará.

  • Checkout: Impede que os usuários façam check-in ou check-out de qualquer um dos itens especificados até que você libere explicitamente o bloqueio. Se qualquer outro usuário tiver bloqueado qualquer um dos itens especificados, ou se houver alterações pendentes existentes em relação a qualquer item, a operação de bloqueio falhará.

/preview

Mostra uma visualização da mesclagem.

/baseless

Executa uma mesclagem sem uma versão base. Ou seja, permite que o usuário mescle arquivos e pastas que não têm uma relação de mesclagem. Depois de uma mesclagem sem base, existe uma relação de mesclagem e fusões futuras não precisam ser infundadas.

Nota

Mesclagens sem base não podem excluir arquivos no destino. Você pode transferir manualmente essas alterações.

/noimplicitbaseless

Especifica que o TFVC não fará uma mesclagem implícita sem base entre dois itens que tenham o mesmo nome relativo em duas árvores de controle de versão não relacionadas.

/nosummary

Omite o resumo de conflitos, erros e avisos.

/noprompt

Suprime todas as solicitações de entrada de você.

/conservative

Resulta em mais conflitos quando você mescla uma ramificação para outra.

/format

Especifica os formatos de resumo de conflitos de mesclagem:

  • Brief (padrão): resume apenas o número total de conflitos, avisos e erros.
  • Detailed: Resume não apenas o número total de conflitos, avisos e erros, mas também lista detalhes sobre cada conflito.

Nota

Esta opção aplica-se apenas quando a saída contém um resumo dos conflitos. O resumo não poderá ser mostrado se a /nosummary opção for usada ou se a mesclagem tiver causado menos de 10 conflitos, avisos e erros.

/login

Especifica o nome de usuário e a senha para autenticar o usuário com o Azure DevOps.

Observações

Você pode usar o merge comando do tf utilitário de linha de comando para aplicar alterações em uma ramificação de origem existente a uma ramificação de destino existente. Você pode mesclar uma revisão individual ou um conjunto de alterações completo para a ramificação de destino. Você pode mesclar alterações da ramificação de origem para a ramificação de destino ou da ramificação de destino para a ramificação de origem.

O merge comando também permite consultar alterações em uma ramificação de origem que não foram migradas para a ramificação de destino. O comando também permite indicar que certas alterações nunca serão mescladas da origem para o destino e não devem mais ser exibidas como candidatas a uma operação de mesclagem.

Para obter mais informações sobre como usar o utilitário de linha de tf comando, consulte Usar comandos de controle de versão do Team Foundation.

Fusão sem fundamento

Use mesclagem sem base para mesclar itens que não são diretamente ramificados uns dos outros. Para fazer uma mesclagem sem base, você deve usar o tf merge comando. Quando você faz uma mesclagem sem base, o TFVC não tem nenhuma informação sobre a relação dos arquivos nas ramificações. Em uma mesclagem sem base, você deve fazer resoluções manuais de conflitos. Depois de fazer a mesclagem sem base e resolver quaisquer conflitos, o TFVC registra o histórico de mesclagem e estabelece uma relação entre as pastas e os arquivos.

Quando você executa tf mergeo , o TFVC faz uma mesclagem implícita sem base entre itens que têm o mesmo nome relativo em duas árvores controladas por versão relacionadas anteriormente. Por exemplo, talvez você queira mesclar as ramificações $SRC relacionadas e $TGTo . Ambas as ramificações contêm um arquivo não relacionado chamado a.txt. Quando você executa tf mergeo , o TFVC estabelece uma relação entre os dois arquivos a.txt se os dois arquivos forem os mesmos, a criptografia compatível com FIPS estiver desabilitada e o arquivo de origem não estiver relacionado a nenhum outro arquivo no destino.

Se você executar tf merge com o /noimplicitbaseless conjunto de opções, quando o TFVC tentar mesclar as duas ramificações, os dois arquivos a.txt criarão um conflito de namespace quando você tentar fazer check-in das alterações. Para resolver o conflito, você deve renomear um dos arquivos.

Exemplos

O exemplo a seguir mescla alterações de MyFile_beta1 que não foram mescladas em MyFile_RTM.

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

O exemplo a seguir mescla o conjunto de alterações 137 em branch2.

c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive

O exemplo a seguir mescla todos os conjuntos de alterações até o conjunto de alterações 137 em branch2.

c:\projects>tf merge /version:C137 branch1 branch2 /recursive

O exemplo a seguir imprime uma lista dos conjuntos de alterações em branch1 que não foram mesclados em branch2.

c:\projects>tf merge /candidate branch1 branch2 /recursive

O exemplo a seguir imprime uma lista de conjuntos de alterações em branch2 que não foram mesclados novamente em branch1.

c:\projects>tf merge /candidate branch2 branch1 /recursive

O exemplo a seguir descarta o conjunto de alterações 137 como um candidato para fusão em branch2.

c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive

O exemplo a seguir descarta todos os conjuntos de alterações até o conjunto de alterações 137 como candidatos para fusão em branch2.

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive