Como ninguém pode sugerir uma ferramenta que corresponda aos meus requisitos, provavelmente não há nenhuma.
Eu preciso de um programa GUI para Linux (Ubuntu Karmic) como tkdiff , que pode exibir 2 arquivos lado-a-lado e destacar as linhas diferentes, e ele aceita vários pares de arquivos no comando linha, mas exibe apenas um par de arquivos de cada vez, e deixa-me saltar para o par de arquivos seguinte ou anterior pressionando uma tecla. Qual o melhor programa para isso?
Eu tentei tkdiff e meld , mas parece ser impossível especificar mais de 2 arquivos para estes na linha de comando.
Eu também tenho lutado com os diffs de vários pares do TkDiff. Até agora eu só consegui o muito inútil:
Error: you specified 6 file(s) and 0 revision(s)
... mas vou adicionar minha experiência e algumas anotações aqui.
Perforce-se aqui no trabalho já faz a coisa certa para mim.
Veja o que o ps
diz para um bom trabalho Diferença de vários pares do Perforce
(Eu movi cada item argv separado para sua própria linha):
wish
/tools/eng/perforce/tkdiff.tcl
--
:
/tmp/g4-60077/cache/depot/path/to/file1#740
/home/douglasdd/work/src1/path/to/file1
:
/tmp/g4-60077/cache/depot/path/to/file2#15
/home/douglasdd/work/src1/path/to/file2
A partir disso, estou supondo que parte do que está faltando na resposta de Leon acima é o '-' e ':' antes do primeiro par de arquivos. Mas isto não é o suficiente.
Nossa versão forçada do TkDiff é antiga (3.0x), então estou tentando usar minha versão 4.1.x instalada localmente. Mas sem sorte até agora ...
Executar manualmente isso funciona:
wish /tools/eng/perforce/tkdiff.tcl -- : "/tmp/g4-60077/cache/depot/path/to/file1#740" /home/douglasdd/work/src1/path/to/file1 : "/tmp/g4-60077/cache/depot/path/to/file2#15" /home/douglasdd/work/src1/path/to/file2
Mas a execução manual falha:
wish /usr/local/bin/tkdiff -- : "/tmp/g4-60077/cache/depot/path/to/file1#740" /home/douglasdd/work/src1/path/to/file1 : "/tmp/g4-60077/cache/depot/path/to/file2#15" /home/douglasdd/work/src1/path/to/file2
... com o temido:
Error: you specified 6 file(s) and 0 revision(s)
A partir do qual eu sou forçado a me perguntar se talvez o Perforce tem sua própria versão customizada do TkDiff ??
Desculpe, isso não ajuda muito.
Tente organizar os arquivos para comparar com o mesmo nome em diretórios diferentes, ou seja, comparando foo/file1
com bar/file1
, foo/file2
com bar/file2
, etc. Você pode usar links simbólicos. Em seguida, use uma ferramenta de comparação que compreenda a comparação de diretórios. O Emacs é uma dessas ferramentas (menu "Ferramentas / Comparar / Dois diretórios" ou M-x ediff-directories
).
Eu gosto do kdiff3 ele pode fazer 2 ou 3 arquivos - e pode comparar diretórios.
O tkdiff é realmente mal documentado, mas parece que se você separar pares de arquivos por dois-pontos, ele fará a diferença desejada. Por exemplo,
tkdiff a.1 a.2 : b.1 b.2 : c.1 c.2
O meld é um utilitário muito interessante para diferenciar arquivos diferentes e até estruturas de diretórios.
Para diferenciar entre vários arquivos:
meld $file1 $file2 $file3
Para diferenciar entre dois diretórios diferentes:
meld $dir1 $dir2