diff options
Diffstat (limited to 'files/it/creare_patch/index.html')
-rw-r--r-- | files/it/creare_patch/index.html | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/files/it/creare_patch/index.html b/files/it/creare_patch/index.html new file mode 100644 index 0000000000..3498767037 --- /dev/null +++ b/files/it/creare_patch/index.html @@ -0,0 +1,37 @@ +--- +title: Creare patch +slug: Creare_patch +translation_of: Mercurial/Using_Mercurial +--- +<p>Dopo aver avuto <a href="it/Accesso_al_codice_di_Mozilla_via_CVS">accesso al codice</a>, dopo aver apportato ad esso delle modifiche, una volta <a href="it/Compilare_e_installare">costruito</a> e testato, può darsi che si desideri che queste modifiche vengano <a class="external" href="http://www.mozilla.org/hacking/life-cycle.html">riviste e accettate</a>. Per far ciò, occorre creare una lista dei file che sono stati modificati, che chiameremo + <i> + patch</i> + o + <i> + diff file</i> + .</p> +<p>Creare il diff di un singolo file == Per creare il diff di un singolo file locale rispetto al file attualmente nel repository, si utilizzi:</p> +<pre class="eval">$ cvs diff -u8p Winning eleven 11 by Tony Montana +</pre> +<p>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:</p> +<pre class="eval">$ cvs diff -u8p Winning eleven 11 by Tony Montana > +</pre> +<h3 id="Creare_un_diff_su_pi.C3.B9_file" name="Creare_un_diff_su_pi.C3.B9_file">Creare un diff su più file</h3> +<p>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</p> +<pre class="eval">$ cvs diff -u8p . > FILE_DI_OUTPUT +</pre> +<p>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.</p> +<p>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.</p> +<h3 id="Includere_i_nuovi_file_in_una_patch" name="Includere_i_nuovi_file_in_una_patch">Includere i nuovi file in una patch</h3> +<p>Per includere i nuovi file in una patch, si utilizzi l'opzione <tt>-N</tt>:</p> +<pre class="eval">$ cvs diff -u8pN . > FILE_DI_OUTPUT +</pre> +<p>Un problema comune è che + <i> + cvs diff'</i> + non include i nuovi file su cui non è stato eseguito un <b>cvs add</b>, e questo comando richiede accesso al repository.</p> +<p>La soluzione è utilizzare la utility <b>cvsdo</b> (<a class="external" href="http://viper.haque.net/~timeless/redbean/">), che modifica <tt>CVS/Entries</tt> per far credere al cvs che il file sia stato aggiunto al repository: </a></p> +<pre class="eval"><a class="external" href="http://viper.haque.net/~timeless/redbean/">$ cvsdo add NUOVOFILE +$ cvs diff -u8pN NEWFILE > FILE_DI_OUTPUT +</a></pre> +<p><a class="external" href="http://viper.haque.net/~timeless/redbean/">Si noti che questo trucco non funziona per le nuove directory; per queste, <code>cvs add</code> deve realmente modificare il repository immediatamente, il chè richiede un accesso in scrittura. </a></p> |