Come già detto in post precedenti capita spesso di dover lavorare su server remoti collegati nei modi più disparati (ssh, FTP, webDAV..) ma a volte la soluzione migliore è avere una copia in locale e lavorare comodamente sul proprio portatile per trasferire le modifiche una volta ultimate e sufficientemente testate (risate…).
Proprio in questa fase la cosa può farsi complicata: se è possibile passare in blocco tutti i files modificati è sufficiente sovrascriverli e non ci sono particolari problemi. Spesso e volentieri si tratta invece di trasferire solo alcuni files o, nei casi peggiori, solo alcune parti di essi.
Come fare? Beh c’è il fido Meld ad aiutarci! quindi no problem!
Si, peccato che a volte la struttura del progetto è di dimensioni tali che il solo selezionare i path dei vari files da confrontare diventa una rottura di scatole non da poco!
Ovviamente Meld non ci aiuta in questo… possiamo fare qualcosa per limitare questo tedioso compito? Fortunatamente si!
Con poche righe di bash scripting si potrebbe creare una piccolo script che, dato in input il file sorgente da confrontare, apra in automatico Meld impostando i giusti percorsi del file in locale e di quello in remoto!

Si supponga quindi di identificare il path del server remoto con un nome, in genere quello del progetto o del server che lo ospita (ad esempio produzione).
Si predisponga uno script per montare in remoto il percorso dove risiede il nostro progetto avendo cura di nominare la condivisione con il nome precedentemente definito.
Nel nostro caso abbiamo scelto produzione quindi il percorso condiviso sarà montato in /media/produzione.

La situazione sarà la seguente: in locale avremo il progetto in /var/www/myproject mentre il percorso remoto sarà /media/produzione/myproject.

Fatto questo bastano poche righe di codice da inserire, per comodità, in .bashrc:

produzionediff() {
        meld "${PWD/var\/www/media\/produzione}/${1}" "${PWD}/${1}"
}

Supponendo ovviamente che la struttura del progetto remoto sia stata replicata in locale in maniera esatta sarà ora possibile spostarsi nella directory che contiene i files da modificare e applicare il nostro semplice script:

es.

cd /var/www/myproject/src
produzionediff index.php

in automatico si aprirà Meld confrontando il file locale con quello remoto: effettuiamo il merge del codice, et voilà, il gioco è fatto.
Niente di fantascientifico, ma molto, molto comodo! 😉

Automatizzare il confronto file con MELD

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *