Se capita di modificare la nostra applicazione è necessario rilevare quali cambiamenti sono stati introdotti, evitando così di distribuire l’intero progetto. Per rendere agevole le ricerche delle differenze tra i file sorgenti esiste il comando Linux diff che si occupa di segnalare le incongruenze tra i due file passati per argomento. Facciamo un esempio molto semplice, scriviamo il file scrivo.c per stampare una scritta:
#include “stdio.h”
int main(int argc, char* argv[])
{
printf(“Buongiorno al mio amico numero 1\n”);
}
mettiamo che dobbiamo fare dei cambiamenti e rinominiamo il vecchio file in scrivo.old ed aggiorniamo il file scrivo.c in:
#include “stdio.h”
int main(int argc, char* argv[])
{
int i;
for (i = 0; i < 8; i++)
printf(“Buongiorno al mio amico numero %d\n”, i);
}
Il comando diff consente di vedere le differenze tra due file, in particolare tra le opzioni troviamo:
Diamo il comando
diff -u scrivo.old scrivo.c > scrivo.patch
l’output salvato nel file della patch sarà:
— scrivo.old 2010-07-21 21:43:52.000000000 +0200
+++ scrivo.c 2010-07-21 21:45:12.000000000 +0200
@@ -2,5 +2,7 @@
int main(int argc, char* argv[])
{
– printf(“Buongiorno al mio amico numero 1\n”);
+ int i;
+ for (i = 0; i < 8; i++)
+ printf(“Buongiorno al mio amico numero %d\n”, i);
}
Le righe che contengono numeri indicano le date di creazione dei file e l’inizio delle righe in cui va applicata la patch. I segni meno indicano che nel file destinazione vanno tolte le righe, mentre i più indicano le parti da inserire. Per aggiornare il nostro file scrivo.c occorre dare il comando:
patch -p0 < scrivo.patch
ovviamente il comando va dato nella stessa directory del file scrivo.c da aggiornare, in quanto utilizzata l’opzione -p0 del comando patch ( per maggiori informazioni vedere man patch ).
In questo articolo quindi abbiamo visto come evitare di dover sempre rilasciare i sorgenti del progetto, basta infatti far scaricare la patch solo per quelli modificati. Troveremo utile questi strumenti quando dovremmo creare i pacchetti della distribuzione, che abbiamo intenzione di sviluppare tramite il corso, per fare le modifiche ad alcuni file e produrre le patch che poi distribuiremo con i sorgenti.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→