Lavorare Con Le Patch In Linux [Parte 2]

linux_logo2

Nell’articolo precedente abbiamo visto come lavorare con le patch su Linux, ma come avevamo per altro anticipato, c’è un altro modo molto diffuso (e forse più sicuro) che è l’utilizzo di git. Ci si potrebbe chiedere a cosa serve creare una patch se già si dispone di un sistema di controllo di versione. La risposta è semplice, si potrebbe voler contribuire a un progetto di cui non si è uno sviluppatore ufficiale, un caso tipico è il kernel linux.

Anche se ai più può sembrare una situazione strana, tra chi si occupa di software embedded è piuttosto comune trovare dei bachi nel kernel linux, specie per le piattaforme meno popolari, oppure si ha la necessità di inserire una nuova prestazione non ancora supportata.

Eseguite le modifiche partendo da un ramo del kernel ufficiale si può decidere di sottomettere la nostra patch agli sviluppatori del caso.

Tornando a git vediamo come creare una patch. Occorre anticipare che è buona norma sviluppare le patch in un branch separato che conterrà solo le modifiche da apportare al branch master. È possibile creare la patch tramite il comando

 git format-patch master --stdout > new-feature.patch

Ovviamente è possibile sostituire il riferimento master con qualsiasi altro punto di partenza. Questo comando creerà una patch contenente tutte le modifiche per trasformare il nostro albero di sorgenti dal punto di partenza indicato (la HEAD del master nel nostro esempio) fino alla HEAD del ramo corrente, quello in cui abbiamo fatto le nostre modifiche.
Applicare la patch è altrettanto semplice, basta utilizzare il comando:

$ git apply –stat new-feature.patch

È anche possibile simulare il procedimento (quindi senza effettuare nessuno modifica) per vedere se ci possono essere dei problemi grazie al comando:

$ git apply –check new-feature.patch

e successivamente applicare la patch se tutto è andato bene.

Un comando alternativo per applicare la patch è il seguente:

$ git am –signoff < new-feature.patch

Il risultato non sarà diverso da git apply, ma verrà inserità una firma per meglio identificare la modicia in seguito (sarà piu facile risalire a cosa è cambiato con l’inserimento della patch a distanza di tempo).

Anche nel caso di utilizzo di git per creare le patch le possibilità sono molteplici tanto che risulterebbe impossibile elencare tutte le opzioni, ma come sempre il comando man è nostro amico e ci fornirà tutte le informazioni di cui abbiamo bisogno.

© 2008 Ziogeek.com

Tag: ,