Fazendo a saída do diff mais legível

12

Estou procurando uma ferramenta que leve a saída diff / debdiff ( e mais especificamente, a saída de este script ) e exibe o resultado da comparação de uma forma gráfica altamente legível. Quaisquer ponteiros seriam apreciados.

Idealmente, seria o GTK +, equivalente a FOSS de MDR .

Software Meld, Difuso e similar não são adequados para este propósito, uma vez que eles são destinados a trabalhar de forma independente e não recebem informações de stdin.

    
por mgunes 09.11.2010 / 02:00

6 respostas

8

O Kompare pode fazer isso (e é o melhor IMO de visualizador de diferenças de GUI):

./whatchanged package_name | kompare -

Observe o '-' fornecido como o argumento do arquivo de entrada. A maioria dos programas * nix tem essa interface para aceitar entrada canalizada, então você provavelmente pode usar o que quiser.

    
por scottl 12.11.2010 / 03:38
3

Se você tiver apenas um console, colordiff é uma solução muito boa.

Para instalá-lo, execute este comando sudo apt-get install colordiff em um terminal

    
por Mnementh 14.11.2010 / 13:13
2

Eu gosto de usar a sintaxe interna do vim como um paginador, para que eu possa ver os diferenciais coloridos. Por exemplo, colocando isso no seu .bashrc :

sudo apt-get install vim
alias vless='vim -u /usr/share/vim/vimcurrent/macros/less.vim'

(E, em seguida, reutilize seu .bashrc com . ~/.bashrc .) Então você pode executar vless como seu pager:

vless /path/to/your.diff

Não é gráfico, mas é pelo menos destacado.

    
por Kees Cook 09.11.2010 / 06:45
2

Embora uma aplicação do KDE possa ser instalada sem muitas dependências, o kdiff é uma incrível ferramenta de edição / mesclagem de diferenças.

    
por Johanna Larsson 09.11.2010 / 13:23
2

Eu usaria esse script simples para usar o meld (ou qualquer outra ferramenta existente), assim você ganha um pouco de flexibilidade:

#!/bin/bash

TMPDIR='mktemp -d'
DIFF_FILE='mktemp'
TARGET='./'

cat /proc/$$/fd/0 > $DIFF_FILE
cd $TARGET
rsync -apvz --delete --stats --compress --progress $TARGET $TMPDIR
patch -R -p0 -d $TMPDIR < $DIFF_FILE
meld $TARGET $TMPDIR

Testado com meld e com a saída de bzr diff, então copiei isso para / usr / bin e chmod 755 e fiz isso:

bzr diff | meld-diff

Os resultados são exibidos como esperado.

    
por Martin Owens -doctormo- 09.11.2010 / 06:11
1

Eu sei que você não está pedindo uma ferramenta de comparação integrada a um editor, mas tenho certeza que você pode evitar a troca de contexto (do editor ao terminal e de volta ao editor) depois de aprender um pouco sobre o que seu editor pode fornecer. Ambos, emacs e vim vem com ferramentas diff.

  • Para o caso emacs , você usará Modo Ediff (instalado por padrão). Veja esta página wiki ou consulte o manual oficial

  • Usar o emacs é simples, basta digitar Alt + x e digitar ediff .

  • Você pode usar o ediff para a diferença do navegador entre as ramificações e as revisões do seu repositório (bzr, git, svn, etc).

por crncosta 12.11.2010 / 17:54