Che cos'è questo strumento?
Uno strumento di confronto (diff) mette a confronto due testi e mostra l'insieme minimo di modifiche necessarie per trasformare uno nell'altro. È il modo in cui i sistemi di controllo delle versioni come Git visualizzano le modifiche al codice, ed è altrettanto utile per confrontare file di configurazione, contratti, articoli o qualsiasi coppia di versioni di qualsiasi cosa.
Questo strumento esegue il confronto riga per riga utilizzando la stessa famiglia di algoritmi di base (sottosequenza comune più lunga) delle classiche utility di confronto, quindi l'output si presenta come una consueta revisione del codice: + per le righe aggiunte, − per quelle rimosse.
Perché usarlo?
- Scopri cosa è effettivamente cambiato tra due versioni, invece di limitarti a un confronto a occhio.
- Risultato in stile Git ben noto: aggiunte in verde, cancellazioni in rosso, con le righe di contesto in mezzo.
- Riepilogo a colpo d'occhio del numero di righe aggiunte e rimosse.
- Funziona con qualsiasi tipo di testo: codice, file di configurazione, documenti, elenchi.
- Privato: entrambi i testi rimangono nel tuo browser, non viene caricato nulla.
Come si usa
- Incolla il testo originale nella casella a sinistra.
- Incolla la versione modificata nella casella a destra.
- Fai clic su "Confronta".
- Leggi il risultato: le linee verdi sono state aggiunte, quelle rosse sono state rimosse, mentre quelle normali sono rimaste invariate.
Esempio
Input
Original:
line one
line two
line three
Changed:
line one
line 2
line threeRisultato
line one
− line two
+ line 2
line threeLa riga centrale è stata modificata; il file diff mostra che la vecchia riga è stata rimossa e quella nuova è stata aggiunta.
Casi d'uso comuni
- Come controllare un paragrafo riscritto dall'IA: incolla il testo originale e la versione generata dall'IA per vedere esattamente quali frasi sono state modificate, invece di rileggere l'intero testo per individuare le modifiche.
- Confronto tra due bozze di contratto: le modifiche legali sono spesso più facili da esaminare sotto forma di differenze tra righe piuttosto che come "modifiche tracciate" quando il documento è stato riformattato tra una versione e l'altra.
- Verifica di un file di configurazione dopo una distribuzione: incolla il contenuto del file .env o YAML prima e dopo la modifica per verificare che siano state modificate solo le righe desiderate.
- Confronto delle revisioni del testo tradotto: scopri quali righe sono state effettivamente modificate dal traduttore o dal revisore tra una bozza e l'altra.
Limiti da tenere presenti
Si tratta di un confronto a livello di riga, non a livello di parola: se si sposta un paragrafo dall’inizio alla fine di un documento senza modificarne il testo, il risultato sarà una cancellazione completa più un’aggiunta completa, non un’annotazione di “spostamento”. Per i testi ricchi di paragrafi in cui cambiano solo poche parole per frase, uno strumento di confronto a livello di parola evidenzierebbe meno testo, ma il confronto a livello di riga è lo standard per il codice, i file di configurazione e i documenti strutturati ed è proprio su questo che si concentra questo strumento.
Come funziona l'algoritmo di confronto
Lo strumento individua la sottosequenza comune più lunga (LCS) tra i due testi — ovvero l’insieme più ampio di righe che compaiono nello stesso ordine relativo in entrambe le versioni, anche se tra di esse sono state inserite o rimosse altre righe. Tutto ciò che è contenuto in quella sottosequenza comune viene visualizzato come contesto invariato; tutto il resto viene classificato come rimosso (presente solo nell’originale) o aggiunto (presente solo nella nuova versione). Si tratta dello stesso algoritmo di base alla base dell’utilità diff di Unix e del confronto riga per riga di Git, motivo per cui il formato di output ti risulterà immediatamente familiare se hai mai esaminato una pull request.
Una conseguenza pratica: se una riga è duplicata in un altro punto del documento (lo stesso identico testo compare due volte), l'algoritmo la abbina alla occorrenza che mantiene il diff complessivo più piccolo — producendo occasionalmente un abbinamento leggermente diverso da quello che ci si aspetterebbe intuitivamente, anche se il conteggio finale delle righe aggiunte/rimosse è sempre accurato, indipendentemente da quale duplicato sia stato abbinato a quale.
Domande frequenti
Il confronto avviene parola per parola o riga per riga?
Riga per riga, come in `git diff`. Una riga modificata viene visualizzata come una riga rimossa più una aggiunta. I diff a livello di riga sono lo standard per il codice e i file di configurazione e rimangono leggibili anche per testi di grandi dimensioni.
Perché basta una piccola modifica per far apparire l'intera riga come modificata?
Poiché l'unità di confronto è la riga, qualsiasi modifica al suo interno si riflette sull'intera riga. Se hai bisogno di una maggiore precisione, suddividi i paragrafi lunghi in righe più brevi.
Gli spazi bianchi sono importanti?
Sì. Le righe devono corrispondere esattamente; pertanto, uno spazio finale o un'indentazione diversa fanno sì che le righe vengano considerate diverse. Si tratta di una scelta intenzionale: le differenze relative agli spazi bianchi costituiscono differenze effettive nel codice e nei file di configurazione.
C'è un limite di dimensioni?
Non c'è un limite rigido, ma i testi molto lunghi (decine di migliaia di righe) potrebbero richiedere un po' di tempo, poiché il confronto viene eseguito localmente sul tuo dispositivo.
I miei testi sono stati caricati per il confronto?
No. L'algoritmo di confronto viene eseguito interamente nel browser tramite JavaScript. Entrambi i testi rimangono sul tuo dispositivo: una soluzione sicura per contratti, documenti interni e codice non ancora pubblicato.