fbpx

Comandos Linux – Comando merge

Comando merge do Linux

comando de mesclagem

Em sistemas operacionais do tipo Unix, o comando mesclar executa uma mesclagem de arquivos de três vias.

O processo de mesclagem analisa três arquivos: uma versão base e duas versões modificadas conflitantes. Ele tenta combinar automaticamente os dois conjuntos de modificações, com base na versão base compartilhada, em um único arquivo mesclado. Se a mesclagem automática não for possível, facilita a mesclagem manual.

Este documento descreve a versão GNU / Linux de mesclagem .

Descrição

A mesclagem faz parte do pacote de controle de versão do RCS . É usado para executar uma mesclagem de arquivos de três vias.

a mesclagem analisa três arquivos – um arquivo original e duas versões modificadas do original – e os compara, linha por linha, tentando resolver as diferenças entre os dois conjuntos de modificações para criar um único arquivo unificado que represente ambos conjuntos de mudanças.

Dependendo das diferenças entre os dois conjuntos de alterações, esse pode ser um processo automático ou pode exigir a entrada do usuário.

Se nenhum conjunto de alterações entrar em conflito com o outro, a mesclagem geralmente pode descobrir o que fazer por conta própria. Mas se os dois conjuntos de alterações entrarem em conflito – por exemplo, se a mesma linha de texto for redigida de maneira diferente nos dois arquivos modificados – a mesclagem mostrará o conflito no arquivo mesclado resultante.

Como a fusão funciona

mesclar incorpora todas as alterações que levam do arquivo2 para o arquivo3 no arquivo1 . O resultado normalmente entra no arquivo1 .

Suponha que arquivo2 seja o original e que arquivo1 e arquivo3 sejam modificações do arquivo2 . Em seguida, mesclar combina as duas alterações.

Um conflito ocorre se o arquivo1 e o arquivo3 tiverem alterações em um segmento comum de linhas. Se um conflito for encontrado, a mesclagem normalmente gera um aviso e coloca o conflito entre as linhas ” <<<<<<< ” e ” >>>>>>>> “. Por exemplo, um conflito típico será assim:

  <<<<<<< arquivo A
 linhas no arquivo A
 =======
 linhas no arquivo B
 >>>>>>> arquivo B

Se houver conflitos, o usuário deve editar o resultado e excluir uma das alternativas.

Sintaxe

  mesclar [ opções ] arquivo1 arquivo2 arquivo3

Opções

-UMAConflitos de saída usando o estilo -A do diff3 (1) (se suportado pelo diff3 ). Isso mescla todas as alterações que levam do arquivo2 para o arquivo3 no arquivo1 e gera a saída mais detalhada .
-E , -eEssas opções especificam estilos de conflito que geram menos informações que -A . Veja diff3 (1) para detalhes. O padrão é -E . Com -e , a mesclagem não avisa sobre conflitos.
-L labelEssa opção pode ser fornecida até três vezes e especifica os rótulos a serem usados ​​no lugar dos nomes de arquivo correspondentes nos relatórios de conflito. Ou seja, mesclar -L x -L y -L O zabc gera uma saída que parece ter vindo dos arquivos x , ye z em vez dos arquivos a , bec .
-pEnvie os resultados para a saída padrão em vez de substituir o arquivo1 .
-qModo silencioso. Não avise sobre conflitos.
-VImprima o número da versão do RCS.

Exemplos

Digamos que temos um arquivo chamado orig.txt com o seguinte conteúdo.

  Maçãs são vermelhas.
 Laranjas são laranja.
 Mirtilos são deliciosos.

… e um arquivo chamado mod1.txt , que é uma versão modificada do orig.txt :

  Maçãs são obviamente vermelhas.
 Laranjas são azuis.
 Mirtilos são deliciosos.

… e um arquivo chamado mod2.txt , que também é uma versão modificada do orig.txt :

  Maçãs são obviamente vermelhas.
 Laranjas NÃO são azuis.
 Mirtilos são deliciosos.

… e executamos a mesclagem da seguinte maneira:

  mesclar mod1.txt orig.txt mod2.txt

Ele analisará os três arquivos, gravará em mod1.txt e exibirá o seguinte aviso:

  mesclar: aviso: conflitos durante a mesclagem

Isso significa que a fusão foi bem-sucedida, mas devemos estar cientes de que houve um conflito. Se abrirmos o mod1.txt – que por padrão é o arquivo em que a mesclagem está gravada -, descobriremos que agora ele contém o seguinte texto:

  <<<<<<< mod1.txt
 Maçãs são obviamente vermelhas.
 Laranjas são azuis.
 =======
 Maçãs são obviamente vermelhas.
 Laranjas NÃO são azuis.
 >>>>>>> mod2.txt
 Mirtilos são deliciosos.

Cabe a nós decidir qual linha ” Laranjas são … ” manter (ou combiná-las à nossa maneira) e fazer a edição manualmente no arquivo.

diff – Identifique as diferenças entre dois arquivos.

20 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.