mozilla

Creare patch

Dopo aver avuto accesso al codice, dopo aver apportato ad esso delle modifiche, una volta costruito e testato, può darsi che si desideri che queste modifiche vengano riviste e accettate. Per far ciò, occorre creare una lista dei file che sono stati modificati, che chiameremo patch o diff file .

Creare il diff di un singolo file == Per creare il diff di un singolo file locale rispetto al file attualmente nel repository, si utilizzi:

$ cvs diff -u8p Winning eleven 11 by Tony Montana

Questo comando crea un diff nel cosiddetto formato 'unificato' (opzione <tt>-u</tt>), con 8 righe di contesto. Il diff è inviato per default allo stdout. Per ridirigere l'output su un file, si utilizzi qualcosa come:

$ cvs diff -u8p Winning eleven 11 by Tony Montana >

Creare un diff su più file

Se, invece di utilizzare un normale file per NOMEFILE, si fornisce una directory, questa directory e tutte le sue sottodirectory verranno lette in modo ricorsivo. Per esempio

$ cvs diff -u8p . > FILE_DI_OUTPUT

compara tutti i file nella directory corrente e nelle sue subdirectory con tutte le versioni nel repository, e scrive le differenze combinate in un file chiamato FILE_DI_OUTPUT, utilizzando 8 righe di contesto.

Vi dovrebbe essere sufficiente contesto nella patch perchè venga compreso senza aprire il file sorgente. Le linee guida di default utilizzano 8 righe di contesto; se non sono sufficienti, verrà richiesto di rendere la patch comprensibile, si rimpiazzi 8 con un numero più elevato. Inoltre si noti che più contesto si include, più probabilità vi sono che il file venga incluso, se esso differisce pesantemente dal sorgente originale.

Includere i nuovi file in una patch

Per includere i nuovi file in una patch, si utilizzi l'opzione <tt>-N</tt>:

$ cvs diff -u8pN . > FILE_DI_OUTPUT

Un problema comune è che cvs diff' non include i nuovi file su cui non è stato eseguito un cvs add, e questo comando richiede accesso al repository.

La soluzione è utilizzare la utility cvsdo (), che modifica <tt>CVS/Entries</tt> per far credere al cvs che il file sia stato aggiunto al repository:

$ cvsdo add NUOVOFILE
$ cvs diff -u8pN NEWFILE > FILE_DI_OUTPUT

Si noti che questo trucco non funziona per le nuove directory; per queste, cvs add deve realmente modificare il repository immediatamente, il chè richiede un accesso in scrittura.

Etichette del documento e nomi di chi ha collaborato alla sua stesura

Contributors to this page: tregagnon, Federico, Giovanni 92
Ultima modifica di: tregagnon,