Documentazione della comparazione e fusione del file

Opzioni della riga di comando

Confronta 2 file:

kdiff3 file1 file2

Fondi 2 file:

kdiff3 file1 file2 -m
   kdiff3 file1 file2 -o outputfile

Compara 3 file:

kdiff3 file1 file2 file3

Fondi 3 file:

kdiff3 file1 file2 file3 -m
   kdiff3 file1 file2 file3 -o outputfile

Da notare che file1 potrebbe essere trattato come base di file2 e file3.

Caso particolare: File con lo stesso nome
Se tutti i file hanno lo stesso nome ma si trovano in posizioni diverse, è possibile specificare solamente il nome del primo file. Es.:

kdiff3 dir1/filename dir2 dir3

Linea di comando per avviare il confronto e la fusione di una directory:
Questo è molto simile, ma ora trattiamo directory.

kdiff3 dir1 dir2
   kdiff3 dir1 dir2 -o destdir
   kdiff3 dir1 dir2 dir3
   kdiff3 dir1 dir2 dir3 -o destdir

Per maggiori informazioni sulla comparazione e fusione di direcory leggere qui.

Per maggiori informazioni sulle opzioni dalla riga di comando usa:

kdiff3 --help

Dialogo di apertura file
Poiché devono essere selezionati molti file, il programma ha un particolare dialogo di apertura file:
Il dialogo di apertura file permette di digitare il nome del file, selezionare un file con il navigatore ("File...") o di scegliere i file più recenti da una lista a comparsa. Quando aprirai nuovamente il dialogo di selezione file verrà mantenuto l'ultimo file selezionato. Il nome del terzo file non è richiesto. Se il campo per "C" rimane vuoto, le operazioni di comparazione implicheranno solamente i primi due.
Puoi anche selezionare una directory con "Directory...". Se per A è specificata una directory allora sarà automaticamente attivata la comparazione/fusione di directory. Se A specifica un file ma B e C o l'output specifica una directory, allora KDiff3 utilizza il nome del file di A nella directory specificata.
Se viene selezionato "Fusione" allora l'opzione "Output" diverrà modificabile. Ma non è richiesto di specificare subito il nome del file in uscita. Potrai specificarlo successivamente.
L'opzione "Configura..." apre un dialogo di opzioni, in modo che tu possa impostare le varie opzioni prima di avviare l'analisi.

Incolla e trascina l'input
Molte volte vuoi comparare parti di testo che non sono di tua proprietà. KDiff3 permette anche di incollare testo dagli appunti nella finestra di verifica delle differenze selezionata. L'analisi delle differenze apparirà immediatamente. Nel dialogo di selezione file non avrai la necessità di specificare i file, potrai semplicemente chiudere con l'opzione "Annulla".
È possibile utilizzare il trascinamento: prendi un file dal filemanager o seleziona un testo da un editor e trascinalo dentro la finestra di verifica.
Qual'è l'idea? Alcune volte un file contiene due funzioni simili, ma per controllarne il grado di similitudine sarebbe dispendioso se tu dovessi prima creare due file e quindi ricaricarli. Ora puoi semplicemente copiare, incollare e comparare la sola parte di interesse.
Nota: Attualmente non è possibile trascinare qualsiasi file da KDiff3. È supportato solamente il trascinamento del file nella finestra di verifica delle differenze.
Attenzione: Alcuni editor interpretano il trascinamento in altri programmi come operazioni di taglia (invece che copia) ed incolla. In questa maniera i dati originali andrebbero quindi persi.

Capire le informazioni della finestra di ingresso
Sopra ad ogni finestra di testo c'è la "linea informativa". L'informazione della finestra di ingresso contiene una lettera "A", "B" o "C", il nome del file ed il numero di riga della prima linea visibile nella finestra. (Nota che "C" è opzionale). Ogni linea informativa appare con colori diversi. (Se i percorsi sono troppo lunghi, è possibile muovere il mouse sulla riga informativa e un suggerimento visualizzerà l'intero nome.)
Alle tre finestre di input sono assegnate le lettere "A", "B" e "C". "A" ha il colore blu, "B" ha il colore verde e "C" ha il colore magenta. (Questi colori sono i predefiniti, ma possono essere variati dal menu delle impostazioni.)
Quando si trova una differenza allora il colore mostra quale file di ingresso differisce. Quando entrambi i file di input differiscono allora il colore utilizzato per evidenziare questo sarà il rosso ("Colore di conflitto" nelle impostazioni). Questo schema di colori è molto utile nel caso di tre file di ingresso, che discuteremo nella prossima sezione (Fusione).
A sinistra di ogni testo è posizionata la "colonna di sommario". Se ci sono differenze su una riga, la colonna di sommario mostrerà il colore corrispondente. Nel sommario le differenze di soli spazi bianchi saranno evidenziate con una griglia. Per i linguaggi di programmazione in cui non è importante la posizione degli spazi bianchi è molto utile notare a colpo d'occhio se qualcosa di importante è stato variato. (In C/C++ lo spazio bianco è importante solamente all'interno delle stringhe, commenti, comandi di preprocessione, e solo in altre situazioni molto esoteriche.)
La linea verticale che separa la colonna di sommario ed il testo è interrotta se il file di input non presenta linee in questo punto.
Sul lato destro, a sinistra della barra di scorrimento, è presente una colonna informativa. Essa mostra sinteticamente la colonna di sommario dell'ingresso "A". Differenze e conflitti sono visibili a colpo d'occhio. Quando vengono utilizzate solo due finestre di input, tutte le differenze appaiono in rosso, in quanto ogni differenza è un conflitto. Un rettangolo nero incornicia la parte visibile dell'input. Per file di ingresso molto lunghi, quando il numero delle righe è maggiore dell'altezza, in pixel, della colonna di sommario, molte righe di ingresso condividono una unica riga sommaria. Un conflitto quindi ha priorità su semplici differenze, che non hanno priorità sui cambiamenti, così nessuna differenza o conflitto viene perso. Con un clic sopra questa colonna di sommario, il testo corrispondente verrà visualizzato.

Operazione di fusione e la finestra di modifica del risultato
La finestra di modifica del risultato di fusione (sotto la finestra di ingresso) ha anche una linea informativa sovrastante che mostra "Output:", il nome del file e "[Modificato]" se qualcosa è stato variato. Normalmente essa contiene del testo creato dagli automatismi della fusione, ma spesso conterrà anche conflitti.
!!! Il salvataggio è disabilitato fino a quando i conflitti non sono risolti !!! (Usa l'opzione "Vai al precedente/prossimo conflitto non risolto" per ricercare i conflitti rimanenti.)
Con soli due file di ingresso ogni differenza è un conflitto che deve essere risolto manualmente.
Con tre file di input il primo è considerato come base, mentre il secondo ed il terzo contengono le modifiche. Quando in qualche linea solo il file B o il file C presenta una differenza, ma non entrambi, allora il file modificato sarà automaticamente selezionato. Solo quando B e C hanno delle differenze sulle stesse righe il programma si accorgerà del conflitto il quale dovrà essere risolto manualmente. Quando B e C coincidono, ma differiscono con A, allora sarà selezionato C.
La finestra di modifica del risultato di fusione ha anche una colonna di sommario sulla sinistra. Essa mostra la lettera dell'input da dove la linea è stata selezionata o nulla se tutte le tre sorgenti hanno la stessa riga. Per i conflitti essa mostra un punto interrogativo "?" e la riga mostra "<Conflitto nel fondere>", tutto in rosso. Dato che risolvere conflitti riga per riga richiede molto tempo, le righe sono raggruppate per gruppi con le stesse caratteristiche di differenza e conflitto. Saranno separati solo i conflitti di spazi bianchi dai conflitti di spazi non bianchi in modo da facilitare la fusione dei file in cui l'indentazione, su molte righe, cambia.
Quando si fa clic sulla colonna di sommario con il tasto sinistro del mouse in una finestra, il gruppo appartenente a quella riga sarà selezionato in tutte le finestre e la parte iniziare del gruppo sarà visualizzata. (Questo potrebbe coinvolgere un posizionamento automatico nella finestra se l'inizio del gruppo non è visibile.) Questo gruppo diverrà quindi il "gruppo corrente". Esso è visualizzato con il "Colore di fondo per questo intervallo corrente" e una barra nera apparirà sul lato sinistro del testo.
I punsanti di selezione dell'ingresso contengono le lettere "A", "B" e "C" nella barra dei pulsanti sotto la barra dei menu. Quando si fa un clic su un pulsante di selezione dell'ingresso, le righe di questo input saranno aggiunte alla fine del gruppo selezionato se questo gruppo non conteneva già tale testo. Altrimenti le righe di questo file di ingresso saranno rimosse.
Inoltre puoi modificare direttamente qualsiasi linea. La colonna di sommario mostrerà "m" su ogni riga che hai modificato.
Alcune volte, quando una linea viene rimossa dalla fusione automatica o da una modifica manuale, e non rimangono altre righe nel gruppo, allora apparirà in questa linea il messaggio <Riga origine mancante>. Questa posizione verrà mantenuta dal gruppo nel caso tu cambiassi idea e volessi sezionare qualche altro sorgente. Questo testo non verrà ripostato nel file salvato o in altre selezioni che desideri copiare ed incollare.
Il testo "<Fondi conflitti>" apparirà negli appunti se copi ed incolli del testo contenente questa linea. Fai comunque attenzione nell'eseguire tale operazione.
La normale fusione partirà per la risoluzione automatica di semplici conflitti. Ma il menu "Fondi" permette alcune azioni per altre comuni necessità. Se devi selezionare lo stesso sorgente per molti conflitti, potrai selezionare sempre "A", "B" o "C", o solamente per i conflitti non risolti restanti, o per i conflitti di spazi bianchi non risolti. Se vuoi decidere tu stesso ogni singola differenza "Considera le differenze come conflitti". O se vuoi ritornare all'opzione automatica di KDiff3 seleziona "Risolvi automaticamente i conflitti semplici". KDiff3 riavvierà quindi la fusione. Per azioni che cambiano le tue precedenti modifiche KDiff3 ti chiederà la conferma prima di procedere.
Nota: Quando scegliendo un sorgente per conflitti non risolti di spazi bianchi e le opzioni "Ignora numeri" o "Ignora commenti C/C++" sono utilizzate allora variazioni nei numeri o nei commenti saranno anch'essi trattati come spazi bianchi.

Navigazione e modifica
È possibile navigare con le barre di scorrimento, con il mouse oppure con l'uso dei tasti. Se fai clic dentro una finestra potrai usare i pulsanti del cursore sinistra, destra, alto, basso, pagina successiva, pagina precedente, inizio, fine, ctrl-inizio, ctrl-fine come per gli altri programmi. La colonna descrittiva dopo la barra di scorrimento verticale del file di ingresso può anche essere utilizzata per la navigazione facendo clic su questa.
È possibile utilizzare la rotellina del mouse solo per scorrere su e giù.
Per modificare il risultato della fusione di file puoi utilizzare solamente i tasti di modifica. Puoi invertire la modalità di inserimento e sovrascrittura con il tasto insert. (la modalità di inserimento è quella predefinita.)
Premendo il pulsante sinistro del mouse dentro una colonna di sommario saranno aggiornate tutte le finestre, che mostreranno l'inizio dello stesso gruppo di linee (come spiegato nella sezione "Fusione").
La barra dei pulsanti contiene inoltre altri pulsanti di navigazione con i quali è possibile saltare alla corrente/prima/ultima differenza, alla prossima/precedente differenza (ctrl-giù/ctrl-su), al prossimo/precedente conflitto (ctrl-pgdown/ctrl-pgup), o al prossimo/precedente conflitto non risolto. Nota che per KDiff3 un "conflitto" che non è stato automaticamente risolto all'inizio della fusione permane "conflitto"anche se risolto. Quindi la necessità di distinguere "conflitti non risolti".
C'è anche un pulsante "Vai automaticamente al prossimo conflitto non risolto dopo aver selezionato la fonte" (Avanzamento automatico). Selezionandolo quando un sorgente è selezionato, KDiff3 salterà automaticamente alla selezione del prossimo conflitto non risolto. Questo può aiutare quando scegli solamente un unico file di ingresso. Quando hai bisogno di entrambi i sorgenti, o vuoi modificare dopo la selezione, vorrai probabilmente disattivarlo. Prima di procedere al prossimo conflitto non risolto KDiff3 mostrerà l'effetto della tua scelta per un breve periodo. Questo tempo è modificabile nell'impostazione di Verifica & Fusione: È possibile specificare la "Pausa nell'avanzamento automatico" in millisecondi tra 0 e 2000. Suggerimento: Stanco di troppi Clic? - Quando ci sono molti conflitti usa un tempo basso di avanzamento automatico e le scorciatorie Ctrl-1/2/3 per selezionare A/B/C.

Selezione, Copia ed Incolla
La finestre dell'ingresso non mostra un cursore, così le selezioni devono essere fatte con il mouse, fai clic con il tasto sinistro all'inizio, e, mentenendolo premuto, muoversi fino a fine selezione, dove dovrai rilasciare il tasto. Con un doppio clic è possibile selezionare una unica parola. Nella finestra del risultato è possibile selezionare anche tramite la tastiera, mantenendo il tasto "shift" e muovendosi con i tasti del cursore.
Per copiare negli appunti è necessario premere il pulsante "Copia" (Crtl-C o Ctrl-Ins). Ma esiste anche l'opzione "Copia automatica". Se attiva, ognivolta che si seleziona del testo esso verrà copiato immediatamente e non dovrai esplicitarlo. Presta però attenzione all'utilizzo perché i contenuti degli appunti potrebbero accidentalmente essere distrutti.
"Taglia" (Crtl-X o Shift-Delete) copia il testo selezionato negli appunti e lo elimina, mentre "Incolla" (Crtl-V o Shift-Insert) inserisce il testo contenuto negli appunti nella posizione corrente o in sostituzione all'attuale selezione.

Salvataggio
Il salvataggio sarà permesso solamente quando tutti i conflitti saranno risolti. Se il file esiste e l'opzione "File di copia" è abilitata allora il file esistente sarà rinominato con estensione ".orig", ma se tale file esiste sarà rimosso. All'uscita o all'avvio di un'altra analisi delle differenze se il risultato non è stato ancora salvato KDiff3 richiederà se si vuole salvare, annullare o procedere senza salvare. (KDiff3 non intercetta nessun segnale. Quindi se si esegue un "kill" di KDiff3 tutti i dati saranno persi.)
I terminatori di riga sono salvati secondo il metodo tradizionale del sistema operativo. Per i sistemi Unix la riga termina con il solo carattere "\n", mentre per i sistemi Win32 ogni riga termina con i caratteri ritorno a capo + nuova riga "\r\n". KDiff3 non mantiene il terminatore originale del file, quindi non utilizzare KDiff3 con i file binari.

Ricerca Stringhe
È possibile ricercare una stringa in ogni finestra di KDiff3. Il comando "Ricerca ..." (Ctrl-F) nel menu di Modifica apre un dialogo che permette di specificare la stringa da ricercare. È anche possibile selezionare la finestra sulla quale fare la ricerca. La ricerca partirà sempre dall'inizio. Usare il comando "Ricerca successivo" (F3) per la prossima occorrenza. Se decidi di cercare su più finestre allora la ricerca sarà dall'alto al basso nella prima finestra, poi dall'alto al basso nella seconda, ecc.

Opzioni
Le opzioni e la lista del file recenti saranno memorizzate all'uscita del programma, e ricaricate quando verrà avviato. (Menu Impostazioni->Configura KDiff3 ...)

Tipo di caratteri
Seleziona un tipo carattere a larghezza fissa. (in alcuni sistemi questo dialogo potrebbe presentare anche la selezione della larghezza del font, ma non è consigliabile usarla.)
Corsivo per le differenze:	Selezionando questo, le differenze di testo saranno rappresentate con il tipo di carattere scelto ma in stile corsivo. Se il tipo di carattere non supporta il corsivo l'opzione non avrà effetto.

Colori
Colore primo piano:	Normalmente nero.
Colore di fondo:	Normalmente bianco.
Colore di fondo per le differenze:	Normalmente grigio chiaro.
Colore A:	Normalmente blu scuro.
Colore B:	Normalmente verde scuro.
Colore C:	Normalmente magenta scuro.
Colore per i conflitti:	Normalmente rosso.
Colore di sfondo per questo intervallo corrente:	Normalmente giallo chiaro.
Colore di sfondo per questo intervallo:	Normalmente giallo scuro.
Su sistemi con soli 16 o 256 colori alcuni colori non sono disponibile nella forma originale. In tali sistemi l'opzione "Predefiniti" selezionerà un colore puro.

Impostazioni dell'editor
I Tab inseriscono spazi:	Se questo è disabilitato e viene premuto il tasto di tabulazione, un carattere tabulatore verrà inserito, altrimenti verranno inseriti un numero appropriato di caratteri.
Dimensione di Tab:	Può essere modificato per le tue necessità. Il predefinito è 8.
Rientro automatico:	Quando premi Invio o Return verrà utilizzata, per la nuova riga, l'indentazione della linea precedente.
Copia automaticamente la selezione:	Ogni selezione è immediatamente copiata negli appunti quando attiva e non sarà necessario esplicitare la copia.
Usa la codifica locale:	Per la visualizzazione di caratteri stranieri. Provare a cambiare questo se alcuni caratteri della tua lingua non sono correttamente visualizzati.

Impostazioni di verifica & fusione
Quando si comparano dei file, KDiff3 prima proverà a confrontare le righe che sono uguali in tutti i file di ingresso. Solo durante questa fase potrebbe ignorare gli spazi bianchi. La seconda fase confronta ogni riga. In tale fase gli spazi bianchi non saranno ignorati. Inoltre durante la fusione gli spazi bianchi non saranno ignorati.
Mantieni il ritorno a capo (CR):	Alcuni editor (in alcuni sistemi) salvano il ritorno a capo '\r' e avanzamento riga '\n' mentre altri salvano solamente il ritorno a capo '\n'. Normalmente KDiff3 ignora il ritorno a capo, ma quando i file non hanno la stessa dimensione potrebbero comunque risultare uguali dopo una verifica parallela. Quando l'opzione è abilitata allora il ritorno a capo è reso visibile ma trattato come uno spazio bianco. Questa opzione deve essere disattivata durante la fusione. Normalmente disabilitata.
Ignora i numeri:	Normalmente disabilitato. I caratteri numerici ('0'-'9','.','-') saranno ignorati nella prima parte dell'analisi nella quale viene fatta la verifica delle righe. Nel risultato delle differenze saranno tuttavia mostrate, ma sono trattate come spazi bianchi.
Ignora commenti C/C++:	Normalmente disabilitato. Le variazioni nei commenti saranno trattati come variazioni degli spazi bianchi.
Trasforma in maiuscolo:	Normalmente disabilitato. Converte l'input in maiuscolo durante la lettura. Così la comparazione non è sensibile alle maiuscole/minuscole. Attenzione durante la fusione perché la tale informazione sarà persa anche durante l'operazione di fusione.
Comandi del preprocessore	Quando un file viene letto, esso sarà inoltrato come ingresso a questo comando esterno. Il risultato del comando sarà considerato al posto del file originale. Potrai scrivere il tuo preprocessore per le tue esigenze. Utilizzalo per tagliare parti di file che disturbano, o per correggere automaticamente l'indentazione ecc.
Preprocessore per confronto righe:	Quando un file viene letto, esso viene trattato da questo comando esterno. Se un comando del preprocessore (vedi sopra) viene specificato, allora l'uscita dal preprocessore è anche l'ingresso del preprocessore di verifica. Il risultato sarà usato durante la fase di analisi di ricerca delle linee. Puoi scrivere il tuo preprocessore personalizzato che risolverà i tuoi casi. Ogni linea di input deve avere una linea corrispondente in uscita.
Ricerca tenace:	Ricerca approfondita per ricercare la più piccola differenza. (Normalmente attiva.) Questo sarà probabilmente utile per file complicati e lunghi. E lento per file molto lunghi.
Pausa nell'avanzamento automatico (ms):	Quando l'opzione di auto avanzamento automatico è attiva si specifica quando lungo mostrare il risultato delle selezione prima di saltare al prossimo conflitto non risolto.
Trattamento predefinito degli spazi bianchi nel fondere 2 file:	Automaticamente risolve tutti i conflitti di spazi bianchi scegliendo lo specifico file. (Scelta manuale predefinita.) Utile se lo spazio bianco non è importante in molti file. Se hai bisogno di questo solo occasionalmente è meglio usare "Scegli A/B/C per tutti i conflitti non risolti di spazio bianco" nel menu di fusione. Nota che se hai abilitato l'opzione "Ignora numeri" o "Ignora commenti C/C++" allora questa auto selezione verrà applicata anche per i conflitti nei numeri o nei commenti.

Fusione di directory
Queste opzioni sono considerate con la scansione delle directory e la manipolazione della fusione: Vedi Directory Comparazione/Fusione Documentazione per maggiori dettagli.
Tuttavia qui esiste una opzione che è anche rilevante per il salvataggio di singoli file:
File di backup:	Quando viene salvato un file ed esiste una versione meno recente, la versione originale sarà rinominata con l'estensione ".orig". Se già esiste una versione con estensione ".orig" questa verrà eliminata senza una copia di riserva.

Varie
(Queste opzioni ed azioni sono disponibile nei menu o nelle barre dei pulsanti.)
Mostra i numeri di riga:	Puoi selezionare se, per il file di ingresso, il numero di riga deve essere visualizzato.
Mostra anche le differenze date da spazi e tabulatori:	Alcune volte la visualizzazione degli spazi e dei tabulatori disturba. È possibile eliminarla.
Mostra spazio bianco:	Disabilita questo per sopprimere ogni evidenziazione di spazi bianchi cambiati nel testo o nelle colonne di sommario. (Nota che questo è anche applicato a cambiamenti nei numeri o nei commenti se sono attive le opzioni "Ignora numeri" o "Ignora commenti C/C++".)
Mostra finestra A/B/C:	Alle volte vuoi usare meglio lo spazio dello schermo per righe lunghe. Nascondere le finestre che non sono importanti. (Nel menu di Finestra.)
Inverti orientamento divisione:	Inverti tra la finestra delle differenze e le altre (A a sinistra di B a sinistra di C) o sopra le altre (A sopra B sopra C). Questo potrebbe anche aiutare in presenza di molte righe. (Nel menu di Finestra.)
Avviare velocemente una fusione:	Alcune volte stai visualizzando le differenze e decidi di fondere. "Fondi il file corrente" nel menu di Directory funziona anche solo comparando due file. Un solo clic ed inizia la fusione che utilizza, come predefinito, il nome del file dell'ultimo file considerato. (Quando questo è utilizzato per far ripartire la fusione, allora il nome del file di output sarà mantenuto.)

Configurazione delle scorciatoie da tastiera
Attualmente solo la versione KDE supporta la configurazione personalizzata dei tasti scorciatoria. (Menu Impostazioni->Configurazione Scorciatoie...)