Confronto testi (Diff Checker)

Confronta due testi o frammenti di codice riga per riga. Le righe aggiunte, rimosse e modificate vengono evidenziate, fino alle singole parole che differiscono.

Funziona nel browserNessuna registrazioneNessun caricamento

Incolla il testo in entrambi i riquadri per vedere le differenze.

Come usare Confronto testi (Diff Checker)

  1. Incolla il testo originale a sinistra e quello modificato a destra, oppure apri due file.
  2. Il confronto si aggiorna mentre scrivi. Scegli la vista Affiancata o Unificata.
  3. Spunta Ignora spazi, Ignora maiuscole o Ignora righe vuote per nascondere il rumore, come le reindentazioni.
  4. Usa Nascondi invariati per concentrarti sulle modifiche, con tre righe di contesto intorno a ciascuna.
  5. Clicca Copia come patch o Scarica .diff per ottenere un diff unificato standard da applicare con git apply o patch.

Come funziona questo diff checker

Lo strumento divide entrambi gli input in righe ed esegue l'algoritmo di differenza di Myers, lo stesso algoritmo O(ND) usato da git diff e da GNU diff. Trova la sequenza più breve di inserimenti ed eliminazioni che trasforma l'originale nel testo modificato, quindi il risultato mostra il minor numero possibile di righe cambiate. Le righe identiche iniziali e finali vengono saltate per prime, il che rende quasi istantaneo il confronto di file con migliaia di righe.

Quando una riga rimossa e una aggiunta sono adiacenti, vengono abbinate come riga modificata e confrontate di nuovo parola per parola. Le parole effettivamente cambiate ricevono un'evidenziazione più marcata, così una variabile rinominata o un numero modificato risaltano anche in una riga lunga.

Vista affiancata e vista unificata

La vista Affiancata mette l'originale a sinistra e la nuova versione a destra, con i numeri di riga per entrambe. È la vista più comoda per rivedere testi, file di configurazione e piccole modifiche al codice. La vista Unificata alterna in un'unica colonna le righe rimosse (-) e aggiunte (+), il formato usato dagli strumenti di code review e dai file di patch.

Formato diff unificato (patch)

La patch esportata segue il formato diff -u: un'intestazione ---/+++, poi blocchi (hunk) che iniziano con @@ -l,s +l,s @@, dove l è il primo numero di riga e s il numero di righe del blocco in ciascun file. Ogni blocco include tre righe di contesto invariate, quindi può essere applicato con patch -p0 o git apply anche se le righe vicine si sono spostate.

Quando usare le opzioni di esclusione

  • Ignora spazi considera uguali le righe che differiscono solo per spazi o tab. Usalo dopo aver reindentato il codice o convertito i tab in spazi.
  • Ignora maiuscole è utile per SQL, HTML e file di log, dove maiuscole e minuscole non contano.
  • Ignora righe vuote nasconde le righe aggiunte o rimosse solo come spaziatura.

Domande frequenti

Il mio testo viene caricato da qualche parte?
No. Il confronto avviene interamente nel tuo browser con JavaScript. Nulla di ciò che incolli viene inviato a un server, quindi puoi confrontare in sicurezza codice privato, contratti o file di configurazione.
Quanto possono essere lunghi i testi?
File con decine di migliaia di righe vengono confrontati in molto meno di un secondo su un portatile tipico. Poiché il costo dell'algoritmo cresce con il numero di differenze, i tempi più lunghi si hanno con due file enormi e completamente diversi.
Posso confrontare due file invece di incollare il testo?
Sì. Usa i pulsanti Apri file sopra ogni riquadro per caricare un file locale. Il file viene letto dal browser e non viene mai caricato.
Perché una riga è mostrata come rimossa e aggiunta invece che modificata?
Le righe vengono abbinate come “modificate” solo quando un blocco di righe rimosse è direttamente accanto a un blocco di righe aggiunte. Se le due righe hanno pochissimo testo in comune, l'evidenziazione per parola viene saltata perché sarebbe più confusa che mostrare l'intera riga come cambiata.
Come confronto oggetti JSON?
Usa lo strumento JSON Diff. Confronta la struttura analizzata, quindi ordine delle chiavi e formattazione non creano false differenze, ed elenca i percorsi esatti che sono cambiati.

Strumenti correlati