diff3 - diff3
Desenvolvedor (s) | AT&T Bell Laboratories |
---|---|
lançamento inicial | Janeiro de 1979 |
Sistema operacional | Unix e semelhante ao Unix |
Modelo | Comando |
diff3 é um utilitário Unix para comparar três arquivos e mostrar as diferenças entre eles. O diff3 também pode mesclar arquivos, implementando uma mesclagem de três vias .
História e implementações
diff3
apareceu originalmente na versão 7 do Unix de 1979. Uma versão muito semelhante foi encontrada no Berkeley Software Distribution (BSD) e foi herdada no OpenBSD e provavelmente no Solaris .
Na maioria dos sistemas modernos do tipo Unix, mesmo aqueles derivados do BSD como FreeBSD e NetBSD, o diff3 fornecido é a versão do GNU em diffutils (anteriormente GNU Tools ). Esta versão tem a capacidade de mesclar arquivos por conta própria, sem depender de ed
. Ele invoca internamente diff
para fazer a comparação, mas também pode usar qualquer outra ferramenta compatível.
"Diff3" também se tornou um nome genérico para o algoritmo de mesclagem de três vias, especificamente um baseado na reconciliação de duas diferenças diferentes originadas da primeira fonte.
Mesclando de um ancestral comum
Quando duas pessoas fazem alterações nas cópias do mesmo arquivo, diff3 pode produzir uma saída mesclada que contém os dois conjuntos de alterações junto com avisos sobre conflitos. diff3 pode mesclar três ou mais conjuntos de mudanças em um arquivo mesclando dois conjuntos de mudanças por vez.
diff3 pode incorporar alterações de duas versões modificadas em uma versão anterior comum. Isso permite que os usuários mesclem os conjuntos de alterações representados pelos dois arquivos mais recentes. Este pode ser ativado usando um comando como este: diff3 mine older yours
.
Isto é como subtrair o arquivo older
a partir do arquivo yours
e adicionando o resultado para o arquivo mine
, ou como fundindo-se mine
as mudanças que iria transformar older
em yours
. Essa fusão é bem definida, desde que mine
e older
coincida na vizinhança de cada mudança. Isso não é verdade quando todos os três arquivos de entrada são diferentes ou quando apenas são older
diferentes; isso é um conflito. Quando todos os três arquivos de entrada são diferentes, o conflito é uma sobreposição.
diff3 tem vários métodos para lidar com sobreposições e conflitos. Ele pode omitir sobreposições ou conflitos, ou selecionar apenas sobreposições, ou marcar conflitos com linhas especiais <<<<<<<
e >>>>>>>
.
diff3 pode produzir os resultados da mesclagem como um script ed que pode ser aplicado ao primeiro arquivo para produzir a saída mesclada. No entanto, gerar diretamente a saída mesclada contorna alguns problemas com ed.
Veja também
Referências
links externos
- Uma investigação formal de Diff3
- GNU diffutils manual, "Comparando três arquivos" e "Mesclando de um ancestral comum"