Diff Checker

Diff Checker

Confronta due testi o codice con evidenziazione di righe e parole. Fianco a fianco o unificato, ignora spazi, ignora maiuscole — interamente nel tuo browser.

No. L'intero strumento è JavaScript che gira all'interno di questa pagina. L'algoritmo di diff (longest-common-subsequence) viene eseguito sulla tua CPU e il risultato è renderizzato direttamente nel DOM. Apri DevTools → Network e osserva — nessuna richiesta parte durante il confronto. Sicuro per incollare codice interno, dati di clienti, bozze di contratti o qualsiasi cosa che non vorresti far registrare a uno strumento server.

Prima dividiamo entrambi gli input in righe ed eseguiamo un algoritmo LCS (longest common subsequence). Le righe che corrispondono in entrambi i lati sono marcate come uguali. Le righe che non corrispondono vengono accoppiate in righe di 'cambiamento' quando un'aggiunta appare accanto a una cancellazione. Per ogni cambiamento accoppiato, eseguiamo un secondo LCS sulle parole della riga (separate dagli spazi) così solo le parole effettivamente modificate si illuminano in rosso/verde — non l'intera riga.

Perché iKit Diff Checker

Un'area di confronto testi pulita e veloce, senza pubblicità, popup o tracker di terze parti — pensata per sviluppatori, scrittori e chiunque debba individuare cosa è cambiato.

Viste fianco a fianco e unificata

Passa tra la vista divisa (due colonne, stile classico da IDE) e quella unificata (singola colonna con marcatori +/−) con un clic. Entrambe mostrano i numeri di riga ed evidenziano ogni cambiamento in linea.

Evidenziazione a livello di parola

Quando due righe cambiano, eseguiamo un secondo diff a livello di parola così solo le differenze reali si illuminano — non l'intera riga. Più facile individuare un singolo refuso in una riga di 200 caratteri.

Ignora spazi e ignora maiuscole

Attiva la sensibilità agli spazi e alle maiuscole per filtrare i cambiamenti cosmetici (indentazione riformattata, modifiche di capitalizzazione) e concentrarti sulle modifiche reali.

Privacy by design

Entrambi i testi restano nella scheda del browser. L'algoritmo di diff viene eseguito localmente in JavaScript. Verificabile in DevTools → Network: nessuna richiesta parte mentre digiti.

Statistiche e copia

Vedi a colpo d'occhio quante righe sono state aggiunte, rimosse e modificate. Con un clic copi il diff negli appunti per incollarlo in una code review o in un messaggio di commit.

Funziona offline

Dopo il caricamento della pagina, ogni byte è calcolato localmente. Funziona in aereo, dietro un firewall aziendale o senza alcuna rete — utile per code review riservate.

Come funziona davvero un diff checker

La matematica sotto il cofano è più vecchia del web — un algoritmo del 1965 chiamato LCS, più una rifinitura del 1986 di Eugene Myers.

  1. 1

    Suddivisione in righe

    Entrambi gli input vengono spezzati su \n (o \r\n). Ogni riga diventa un token. Confrontiamo i token — non i caratteri — perché la maggior parte delle modifiche nel codice o nei documenti reali aggiunge, rimuove o modifica righe intere.

  2. 2

    Calcolo dell'LCS

    La Longest Common Subsequence è il più grande insieme di righe che appaiono nello stesso ordine in entrambi gli input. Riempiamo una tabella DP procedendo dall'angolo in basso a destra; ogni cella contiene la lunghezza dell'LCS da quella posizione fino alla fine. Richiede tempo e memoria O(m × n).

  3. 3

    Ripercorrere a ritroso per derivare le operazioni

    Partendo dall'angolo in alto a sinistra della tabella, procediamo in avanti: se le due righe correnti coincidono, si emette un uguale; altrimenti si sceglie la direzione (destra o giù) che preserva la lunghezza dell'LCS, emettendo un delete o un insert. Il risultato è una sequenza di operazioni che trasforma l'Originale nel Modificato.

  4. 4

    Diff a livello di parola nelle coppie modificate

    Quando un delete è seguito da un insert, li accoppiamo come riga di cambiamento. Per evidenziare solo le parti che differiscono all'interno della riga, eseguiamo lo stesso algoritmo LCS una seconda volta sulle parole di ciascun lato, separando in base agli spazi.

Operazioni di diff comuni

Situazioni reali in cui ti servirà un diff checker.

Rivedere una PR prima di commentare

La vista diff di GitHub è ottima, ma a volte vuoi vedere solo i cambiamenti sostanziali senza il rumore del formattatore. Incolla entrambe le versioni, attiva Ignora spazi e le riformattazioni cosmetiche svaniscono — lasciando solo le modifiche logiche.

Confrontare due bozze di contratto

Avvocati e team operativi spesso devono sapere cosa è cambiato tra la v1 e la v2 di un contratto. Incolla entrambe, ottieni un diff colorato con evidenziazione a livello di parola — niente Word, niente Revisioni, nessun caricamento di termini riservati su un server di terze parti.

Verificare cosa ha effettivamente fatto la modifica di uno script

Hai eseguito una regex sed/awk/Python su un file di configurazione? Incolla qui l'originale e il risultato per confermare che lo script abbia modificato solo ciò che ti aspettavi. L'evidenziazione a livello di carattere intercetta modifiche sfuggite a una rapida occhiata visiva.

Individuare un refuso in un testo tradotto

Coppia di traduzione (sorgente vs traduzione, o due traduzioni della stessa sorgente) — il diff a livello di parola rende banale trovare una parola mancante, una frase duplicata o un'inversione di punteggiatura sfuggita ai revisori.

Perché conta confrontare in locale

I testi che confronti sono solitamente privati: codice di repository interni, bozze di contratti, esportazioni di dati clienti o testi di prodotti non ancora rilasciati. Incollarli sul server di uno sconosciuto crea una traccia documentale fuori dal tuo controllo. Il diff checker di iKit è JavaScript già caricato nella scheda del tuo browser — il confronto avviene sulla tua CPU e non tocca mai un socket di rete.

  • Zero richieste di rete durante il confronto — verificabile in DevTools → Network.
  • Gli input restano nella memoria del browser; cancellati con Cancella o al refresh della pagina.
  • Sicuro per codice interno, documenti coperti da NDA, trascrizioni di assistenza clienti e qualsiasi cosa rientri in politiche di residenza dei dati.

Related guides

Deep-dive tutorials and tool comparisons from the iKit blog.

Domande frequenti

È sicuro? I miei testi vengono caricati?

No. L'intero strumento è JavaScript che gira all'interno di questa pagina. L'algoritmo di diff (longest-common-subsequence) viene eseguito sulla tua CPU e il risultato è renderizzato direttamente nel DOM. Apri DevTools → Network e osserva — nessuna richiesta parte durante il confronto. Sicuro per incollare codice interno, dati di clienti, bozze di contratti o qualsiasi cosa che non vorresti far registrare a uno strumento server.

Come funziona l'evidenziazione a livello di riga e parola?

Prima dividiamo entrambi gli input in righe ed eseguiamo un algoritmo LCS (longest common subsequence). Le righe che corrispondono in entrambi i lati sono marcate come uguali. Le righe che non corrispondono vengono accoppiate in righe di 'cambiamento' quando un'aggiunta appare accanto a una cancellazione. Per ogni cambiamento accoppiato, eseguiamo un secondo LCS sulle parole della riga (separate dagli spazi) così solo le parole effettivamente modificate si illuminano in rosso/verde — non l'intera riga.

Qual è la differenza tra vista Divisa e Unificata?

La vista Divisa mostra i due testi fianco a fianco con numeri di riga abbinati — più vicina a come appare il diff negli IDE (VS Code, JetBrains). La vista Unificata mostra una singola colonna con righe prefissate da +/− — più simile a ciò che stampa `git diff`. Scegli quella che si adatta al tuo flusso di lavoro; entrambe rendono gli stessi dati.

Perché 'ignora spazi' aiuta?

Riformattare il codice (eseguire Prettier, passare da tab a spazi, normalizzare i fine riga) aggiunge rumore visivo che seppellisce i cambiamenti reali. Attivando 'Ignora spazi' si comprimono sequenze di spazi/tab in un singolo spazio e si rifila i bordi delle righe prima del confronto — così vedi solo le modifiche significative, non quelle cosmetiche.

Qual è l'input più grande che posso confrontare nel browser?

L'algoritmo LCS usa O(m × n) di memoria, dove m e n sono il numero di righe di ciascun lato. iKit limita il confronto a circa 4 milioni di celle (≈16 MB), che gestisce comodamente alcune migliaia di righe contro alcune migliaia di righe. Per diff più grandi (dump completi di database, log di interi file), usa uno strumento CLI come `diff` o `git diff --no-index` — usano un algoritmo più intelligente (Myers diff) che scala fino a milioni di righe.