Differenze di parole colorate come quelle di Git?


8

Ho usato a lungo Git's (colorato) --word-diffche trovo fantastico. Mi sono trovato oggi in una situazione in cui avevo due stringhe che dovevo confrontare parola per parola e brama di qualcosa come il diff di git.

Sono a conoscenza di wdiff+ colordiff, ma i suoi risultati certamente non sono stellari:

me@me:~$ wdiff <(echo -e "abc\ndef") <(echo -e "dbcx\ndef") | colordiff
[-abc-]{+dbcx+}
def

C'è qualche opzione migliore in giro? Non mi piace particolarmente quelli [-, -]e {+, +}.

Risposte:


6

È possibile utilizzare gitil proprio evidenziatore diff . Può evidenziare differenze di parole diffnell'output unificato e può anche far fronte ai colori ANSI sull'input. Quindi puoi fare qualcosa del genere:

colordiff -u <(echo -e "foo abc\ndef") <(echo -e "foo dbcx\ndef") | diff-highlight

Funziona solo per il banale caso in cui c'è una sola parola cambiata sulla linea. Quando cambia più parole, estende erroneamente il video inverso tra le parole che non sono cambiate: colordiff -u <(echo -e "foo abc x y\ndef") <(echo -e "foo dbcx x z\ndef") | diff-highlight
Thomas Dickey

@ThomasDickey Sembra che siano necessarie due parole per risincronizzare. Ad ogni modo, è quello che gitfa. scrollata di spalle
Satō Katsura,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.