Meld: usare i modelli per il confronto di file e di cartelle

Se devi confrontare più volte le stesse cartelle o gli stessi file, è conveniente memorizzare i parametri del confronto. Ecco come farlo con Meld. E, in omaggio, lo script per creare rapidamente il confronto e memorizzarlo su disco

Donna atleta che si allena allo specchio con i pesi. Meld confronta file e cartelle

Donna atleta che si allena allo specchio con i pesi. Meld confronta file e cartelle

Meld (https://meldmerge.org/) che permette di confrontare, affiancati, due file o due cartelle. Ne segnala le differenze e offre la possibilità di rendere identici i contenuti, intervenendo separatamente su ogni differenza.

È un software che progressivamente è diventato insostituibile per il nostro lavoro quotidiano.

Poiché in Studio usiamo diversi computer e i dati di ognuno sono su un server, è facile che al termine di una sessione di lavoro che ci ha visto trafficare pesantemente su un progetto complesso non sia agevole ricordare quali file sono stati modificati sul computer locale e quali no. La soluzione più semplice per allineare la cartella sul server (senza tuttavia usare un vero e proprio di sincronizzazione) sarebbe cancellarla e sostituirla integralmente con quella locale.

Questa operazione, in sé semplice, può essere a volte lunga: se il progetto è complesso e pieno di file multimediali, il tempo per la copia può essere inutilmente molto lungo.

Meld in poco tempo mostra invece le differenze tra cartella locale e cartella remota (con le sottocartelle) e permette di copiare selettivamente i file modificati o assenti.

La stessa cosa la tra due file, che devono essere di tipo testuale: noi lo usiamo molto spesso per confrontare i file .htaccess dei siti con il modello di riferimento che abbiamo definito.

La scocciatura è dover usare l’interfaccia grafica di Meld per indicare ogni volta le cartelle o i file da confrontare: è un andare su e giù per dischi, directory e file di cui faremmo volentieri a meno. Così abbiamo studiato una soluzione semplice.

Memorizzare ciò che deve essere confrontato con Meld

Abbiamo realizzato due semplici file di testo: uno per il confronto di cartelle e l’altro per il confronto di file. Essi contengono le istruzioni per il confronto e li abbiamo memorizzati in un luogo accessibile; anzi, a dire il vero abbiamo costruito sottovoci appositi di un lanciatore.

Di seguito, puoi osservare i due file di testo, che sono davvero molto simili.

Meld_cartelle.meldcmp

[Comparison]

type = Folder

uris = file://Sinistra;file://Destra

Meld_file.meldcmp

[Comparison]

type = File

uris = file://Sinistra;file://Destra

Puoi salvare i file con i nomi che vuoi, mantenendo però l’estensione .meldcmp: è quella che contraddistingue i file di confronto di Meld.

Questi due file sono i modelli per il confronto: verranno usati ogni volta che devi confrontare per la prima occasione due cartelle o due file.

Il primo confronto

La prima volta che devi confrontare due cartelle o due file, apri il modello appropriato e sostituisci Sinistra e Destra con i percorsi appropriati. Tieni presente che:

  • la sintassi prevede che dopo file: vi siano tre barre, come in (il testo che segue è tutto su un'unica riga, senza spazi)

file:///home/claudio/Documenti/Disco_dati/123_Invoicex_in_Lan_Infrastruttura;
file:///home/claudio/Rete/Popolo/Lavori/123_Invoicex_in_Lan_Infrastruttura

perciò devi mantenere la barra iniziale che fa parte del percorso

  • i percorsi del confronto di cartelle possono terminare con un’altra barra, ma non è necessaria.

Salva il file di Meld nella cartella locale da confrontare (o in quella in cui risiede il file da confrontare). Se vuoi, puoi assegnare un altro nome, mantenendo però l’estensione.

Fatto! Ora nella cartella ci sono i dati per fare il confronto tutte le volte che vuoi. Per confrontare le cartelle o i file non dovrai fare altro che un doppio clic.

Lo script per creare il file di confronto tra cartelle (gratis!)

Anche usando il modello, la creazione del file di confronto può essere noiosa. Soprattutto se usi il confronto di Meld per numerose cartelle. Per facilitare il lavoro a noi stessi, abbiamo creato uno script che chiede all'utente quali sono le cartelle da confrontare e poi ci pensa lui a creare il file di confronto e a memorizzarlo nella cartella scelta dall'utente.

In questo modo, è più semplice creare il file di confronto e riutilizzarlo tutte le volte che si interviene nel contenuto della cartella.

Nota che:

  • lo script Crea_Confronto_Cartelle.sh è uno script Bash per Linux
  • puoi assegnare al file di confronto il nome che desideri; quello predefinito è Meld_CCC.meldcmp. CCC sta per Creazione Confronto Cartelle
  • devi scaricare lo script, porlo in una cartella a piacere del tuo computer e assicurarti che abbia i permessi di esecuzione
  • perché lo script funzioni, Zenity deve essere installato nel tuo sistema (in realtà, se Zenity non è disponibile lo script dovrebbe funzionare da Terminale, ma non ci siamo messi a condurre prove approfondite in tal senso)

Puoi ridistribuire liberamente lo script citando la fonte. Puoi anche modificarlo, ma se apporti migliorie ci piacerebbe che le condividessi con noi. Perciò, mandaci una copia dello script modificato, spiegandoci che cosa hai cambiato e perché. Magari vale la pena inserirlo in questo articolo come nuova versione dello script, citando il tuo contributo.