Eu tentei usar o diff
comando linux no passado sem muita sorte ou paciência. Normalmente, acabo usando um utilitário de interface gráfica como o DiffMerge ou o Kdiff.
Recentemente, comecei a tentar usar diff
novamente para comparar arquivos em sistemas remotos via ssh, e achei a -y / --side-by-side
opção muito útil, mas ainda sinto que não estou aproveitando ao máximo este utilitário.
Então, estou curioso para saber como realizar as seguintes coisas:
- Destaque as alterações ou use o código de cores para tornar a saída mais legível
- Mesclar - selecione linhas com diferenças e efetue as alterações em um dos arquivos
Além disso, não encontrei muitos bons exemplos ao pesquisar no Google, por isso, se você tem alguns segredos do linux-fu para tirar o máximo proveito do diff, você poderia compartilhar? Compararei principalmente arquivos de configuração baseados em texto, mas todos os truques e dicas seriam maravilhosos.
Para referência - O utilitário DiffMerge mostra facilmente as alterações lado a lado com o realce das cores. Os ícones na parte superior permitem alternar entre as visualizações de "mostrar tudo", "mostrar diferenças" e "mostrar diferenças com o contexto". Adoraria algumas dessas funcionalidades no prompt de comando.
ps: Devo também observar que outra opção que acho bastante útil é sobre a --suppress-common-lines
qual aprendi neste post conciso e legível do blog .
fonte
Respostas:
Em nenhuma sequência específica:
meld
é um programa diff muito bom, que faz diffs muito agradáveis e combinações de três vias.git config --global merge.conflictstyle diff3
fornece saída de mesclagem de três vias para uso com ferramentas comomeld
.wdiff
faz word diffs, muito bom se colorido :wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
diff
saída, eu normalmente uso a opção--ignore-all-space
(-w
)diff-ignore-moved-lines
* faz o que diz no rótulo.difff
* pode ser usado para diferenciar apenas as linhas que correspondem em determinados campos.* Isenção de responsabilidade: sou o autor e os desenvolvi para ajudar na difusão e fusão de CLI e GUI.
fonte
diffuse
bastante.Eu achei
vimdiff
muito útil.fonte
Para obter cores no diff, você deve consultar http://colordiff.sourceforge.net/ . Este é apenas um invólucro em torno do diff e, como tal, todas as opções de comando ainda funcionam.
Caso você tenha o ubuntu, basta escrever:
Correndo o risco de não atender ao seu caso de uso,
git
é um VCS muito bom que se integra bem a muitas ferramentas de difusão e mesclagem (tanto na linha de comando quanto na GUI). Experimente se for uma opção.fonte
Tentar
sdiff
diff
também possui opções (-e
ou-ed
) para criar um script de mesclagem para uso comed
sdiff
,diff
eed
deve fazer parte do seu shell onde quer que você vá.Seu software de controle de versão provavelmente também possui uma ferramenta
diff
emerge
incorporada.fonte