Utilizzo delle patch

Le patch consentono agli sviluppatori di condividere il lavoro senza doverlo memorizzare in un repository. Ciò risulta utile nel caso in cui uno sviluppatore desideri partecipare a un progetto condiviso attraverso un repository ma non disponga di accesso in scrittura al repository. In tale situazione, lo sviluppatore può creare una patch e inviarla tramite posta elettronica a un altro sviluppatore che dispone di accesso in scrittura o allegarla a un errore nel sistema di segnalazione degli errori utilizzato dal progetto, a seconda del processo definito da quest'ultimo. Lo sviluppatore con accesso in scrittura può, quindi, applicare la patch al progetto ed eseguire il commit delle modifiche.

Per creare una patch da un progetto CVS:

  1. Selezionare la risorsa che contiene le modifiche da includere nella patch. You can select resources that reside in multiple projects and at any level as the Create Patch wizard, when run in its default mode, knows how to create a multi-project patch. La patch deve essere applicata anche alle stesse revisioni del file in cui è generata, per cui sono necessarie delle operazioni per assicurare che la patch venga applicata fino allo stato attuale della stessa risorsa (il modo più semplice per eseguire tale operazione consiste nel creare la patch all'inizio di una versione).
  2. Dal menu a comparsa, selezionare Team > Crea patch.... Verrà aperta la procedura guidata Creazione patch.
  3. Scegliere la posizione in cui salvare la patch:
    1. Salva negli Appunti - salva la patch negli appunti in modo che possa essere incollata in un editor di testo quale un programma di posta elettronica.
    2. Salva nel file system - salva la patch nel file specificato nel file system locale
    3. Salva nello spazio di lavoro - salva la patch nel file specificato all'interno di uno dei progetti esistenti del workbench
    Per le patch di piccole dimensioni è opportuno trasferire la patch utilizzando gli appunti, ma nella maggior parte dei casi il file system locale rappresenta l'opzione più adatta da utilizzare.
  4. You can preview and fine tune your patch selection by expanding the Resources tree presented in the Changes pane. Only those elements which are checked will be included in the patch. Fare clic su Avanti per configurare la modalità di generazione della patch.
  5. Scegliere la modalità per configurare la patch:
    1. Formato di output differente - consente la scelta di vari formati di output differenti. Unificato è il formato utilizzato da molti strumenti di applicazione delle patch, incluso Eclipse.
    2. Patch Root - Allows you to specify at what level your patch is rooted at. The choices are Workspace, Project and Selection.

      Workspace allows you to include resources from multiple projects in your patch and is the default option. Workspace patches can be applied to any resource in the workspace - they contain enough information to allow the Apply Patch wizard to figure out which resources need to be patched.

      Project patches are rooted at the project level - which means they can only contain resources from one project and must be applied to the same project.

      Selection patches are rooted at whatever the selected resource is and must be applied to the same resource.
  6. Scegliere Fine.
  7. Trasferire la patch necessaria per il progetto a cui deve essere applicata.

Per applicare una patch:

  1. Selezionare la risorsa in cui è stata generata la patch. Tale risorsa deve contenere le stesse revisioni del file presenti nello stato attuale in cui la patch è stata generata.
  2. Dal menu a comparsa, selezionare Team>Applica patch.... Verrà aperta la procedura guidata per il patcher di risorsa.
  3. Indicare il percorso in cui individuare la patch:
    1. File - la patch si trova in un file nel file system locale. Immettere il percorso completo del file o utilizzare il pulsante Sfoglia... per individuare il file.
    2. Appunti - la patch si trova negli appunti. Attenzione: è opportuno utilizzare una patch su base file. I caratteri di fine riga potrebbero non essere gestiti in modo corretto se vengono utilizzati gli appunti e la patch è stata generata su una piattaforma differente (ad esempio, Linux invece di Windows).
    3. Workspace - the patch has been saved somewhere in the workspace.
    Fare clic su Avanti per visualizzare l'effetto dell'applicazione della patch.
  4. Optional Step: this step only applies if you have a patch rooted at the project or selection level - workspace rooted patches will automatically proceed to the Patch Preview Page. In the Patch Target Specification page, you should select the resource that is to act as the root of the patch.
  5. The patch preview page shows whether the patch could be successfully applied to files in your workspace. The top pane shows the list of changes contained in your patch. Se si seleziona un elemento secondario della struttura, il riquadro inferiore mostra la porzione del file patch nota come 'hunk' nella terminologia delle patch in una presentazione affiancata di facile lettura. Nota: il riquadro inferiore non mostra un'anteprima di come verrebbero visualizzate le risorse nello spazio di lavoro dopo l'applicazione dell'hunk. Visualizza solo il contenuto del file patch.
    1. Un elemento contrassegnato indica che potrebbe essere applicata una patch (o un hunk) con esito positivo ad una risorsa dello spazio di lavoro. È possibile escludere patch o singoli hunk deselezionandoli.
    2. Un punto esclamativo rosso indica che esiste un problema con una patch o un hunk.
      Ciò si verifica se la patch non è corretta o se la revisione di uno o più file in cui è stata generata la patch non corrisponde alle revisioni a cui viene applicata la patch.
      Il causa del problema viene mostrata in parentesi.

      Per poter applicare correttamente l'intera patch, sarà necessario eliminare i problemi (punti esclamativi rossi) e selezionare ovunque gli elementi estendendo le opzioni di questa pagina della procedura guidata (vedere 'Opzioni' in basso).

  6. Se non si verificano problemi, fare clic su Fine per applicare la patch. Lo spazio di lavoro conterrà ora le modifiche in uscita relative a ciascun file modificato dalla patch.

Opzioni per l'applicazione di una patch

Sono disponibili le seguenti opzioni per ottenere corrispondenze valide per il file patch:
  1. Ritornare alla prima pagina della procedura guidata per il patcher di risorsa e selezionare la risorsa corretta a cui deve essere applicata la patch.
  2. Se il prefisso comune dei nomi di percorso memorizzati nel file patch non corrisponde ai nomi di percorso presenti nello spazio di lavoro corrente, è possibile 'Ignorare i segmenti iniziali del nome di percorso'.
  3. Utilizzare l'opzione 'Ignora spazi' per far sì che il processo di corrispondenza sia indipendente dalle differenze di spazi vuoti tra il file patch e i file nello spazio di lavoro.
  4. Regolare il 'Fattore di massima corrispondenza' (terminologia patch). This factor determines how many lines from the top and bottom of the context will be ignored when locating a match The default is two.
  5. Utilizzare l'opzione 'Annulla patch' per i file patch già applicati al proprio spazio di lavoro. Tale opzione è utile anche per annullare o ripristinare una patch.
  6. For Workspace patches, use the 'Retarget Patch' to select another project in your workspace to apply the patch changes to. To do this, select a project in the top pane and click on the Retarget Patch button. This will launch a dialog with a list of all available projects in your workspace. Select a project and click OK; the patch changes will be applied to your selected project.

Argomenti correlati
Programmazione in team con CVS

Attività correlate
Confronto di risorse

Riferimenti correlati
CVS