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:
- Selezionare la risorsa che contiene le modifiche da includere nella patch. È possibile
selezionare risorse che si trovano in più progetti e a qualsiasi livello poiché la procedura guidata
Creazione patch, quando viene eseguita in modalità predefinita, sa come creare una patch per più progetti. 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).
- Dal menu a comparsa, selezionare Team > Crea patch.... Verrà aperta la procedura guidata Creazione patch.
- Scegliere la posizione in cui salvare la patch:
- 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.
- Salva nel file system - salva la patch nel file specificato
nel file system locale
- 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.
- È possibile visualizzare un'anteprima e ottimizzare la selezione del percorso espandendo
l'albero Risorse presentato nel pannello Modifiche. Solo gli elementi controllati verranno inclusi
nella patch. Fare clic su Avanti
per configurare la modalità di generazione della patch.
- Scegliere la modalità per configurare la patch:
- 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. Il formato utilizzato nelle differenze Contesto e Unificato consente l'applicazione di una patch, anche se il numero riga menzionato
per l'hunk (terminologia patch) non è corretto. In questo caso, quando si applica la patch, l'algoritmo esegue la scansione sia in avanti che indietro
per un insieme di righe che corrisponde al contesto fornito per l'hunk.
- Root patch - consente di specificare a quale livello si trova l'origine della
patch. Le opzioni sono Spazio di lavoro, Progetto e Selezione.
Spazio di lavoro consente di includere risorse da più progetti nella patch
ed è l'opzione predefinita. Le patch dello spazio di lavoro possono essere applicate
a qualsiasi risorsa nello spazio di lavoro; esse contengono sufficienti informazioni per consentire
alla procedura guidata di applicazione patch di rilevare le risorse a cui è necessario applicare
le patch.
Le patch del progetto hanno la directory principale al livello del progetto, il
che significa che possono contenere risorse da un progetto e devono essere applicate allo stesso
progetto.
Le patch di selezione hanno la directory principale nella risorsa selezionata
e devono essere applicate alla stessa risorsa.
- Premere Fine.
- Trasferire la patch necessaria per il progetto a cui deve essere applicata.
Per applicare una patch:
- 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.
- Dal menu a comparsa, selezionare Team>Applica patch.... Verrà aperta la procedura guidata Applica patch.
Questa operazione può inoltre essere effettuata copiando il contenuto della patch negli Appunti e incollandolo direttamente nella
vista Esplora package selezionando Modifica > Incolla.
In tal caso, è possibile ignorare il passo successivo.
- Indicare il percorso in cui individuare la patch:
- 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.
- 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).
- URL - la patch si trova nell'URL fornita. Avvertenza:
assicurarsi che l'URL immessa sia valida e contenga una patch appropriata.
Altrimenti non sarà possibile applicarla. Inoltre, ricordarsi che l'applicazione diretta di una
patch da un'URL potrebbe richiedere un po' di tempo.
- Spazio di lavoro - la patch non è mai stata salvata nello spazio di lavoro.
Fare clic su Avanti per visualizzare l'effetto dell'applicazione della patch.
-
Passo facoltativo: questo passo si applica, solo se si dispone di una patch la cui directory
principale si trova nel progetto o nel livello di selezione - le patch con directory principale
nello spazio di lavoro passeranno automaticamente alla pagina di anteprima patch. Nella pagina
della specifica di destinazione della patch, si consiglia di selezionare la risorsa che dovrà
agire sulla directory principale della patch.
- La pagina di anteprima della patch indica se la patch viene applicata correttamente nei
file dello spazio di lavoro. Il riquadro superiore mostra l'elenco di modifiche contenute nella
patch.
Esistono due tipi di voci nel riquadro superiore: modifiche di file e segmenti di patch non corrispondenti (note come 'hunk' nella terminologia delle patch).
- Se è possibile applicare uno o più segmenti di patch al file automaticamente, questo verrà mostrato con un indicatore di modifica in arrivo. È possibile analizzare la modifica facendo doppio clic sul file.
- Se non è possibile applicare automaticamente uno o più hunk, le relative voci appariranno come elementi figlio del file nel riquadro superiore
ed un punto esclamativo rosso indicherà che esiste un problema con una patch o un hunk.
È possibile analizzare l'hunk facendo doppio clic su di esso. È poi possibile applicarlo manualmente dal riquadro a destra al file sulla sinistra. Il salvataggio dal riquadro a sinistra aggiorna la voce del file padre nel riquadro superiore ma non lo modifica sul disco. Questa modifica infatti avviene solo quando viene premuto il tasto Fine.
Per poter applicare correttamente l'intera patch, sarà necessario eliminare i
problemi (punti esclamativi rossi) o applicando manualmente i segmenti di patch, escludendone uno dall'operazione mediante l'opzione Rimuovi nel menu di scelta rapida oppure estendendo le opzioni su questa pagina della procedura guidata (vedere le 'Opzioni' di seguito).
- 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.
Le patch possono essere applicate sincronizzandole con un contenuto locale
Per eseguire la sincronizzazione con una patch:
-
Dalla prospettiva Sincronizzazione team selezionare l'azione Sincronizza...
dal menu a discesa Sincronizza
.
-
Selezionare Sincronizza con patch dall'elenco dei possibili tipi di sincronizzazione e fare clic su Avanti.
- Indicare il percorso in cui individuare la patch:
- 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.
- 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).
- URL - la patch si trova nell'URL fornita. Avvertenza:
assicurarsi che l'URL immessa sia valida e contenga una patch appropriata.
Altrimenti non sarà possibile applicare la patch. Inoltre, ricordarsi che l'applicazione diretta di una
patch da un'URL potrebbe richiedere un po' di tempo.
- Spazio di lavoro - la patch non è mai stata salvata nello spazio di lavoro.
Fare clic su Avanti per visualizzare l'effetto dell'applicazione della patch.
-
Passo facoltativo: questo passo si applica, solo se si dispone di una patch la cui directory
principale si trova nel progetto o nel livello di selezione - le patch con directory principale
nello spazio di lavoro passeranno automaticamente alla pagina di anteprima patch. Nella pagina
della specifica di destinazione della patch, si consiglia di selezionare la risorsa che dovrà
agire sulla directory principale della patch.
-
Passo facoltativo: questo passo si applica, solo se la patch si riferisce ai progetti che non sono accessibili - se tutti i progetti che derivano da una patch si trovano sullo spazio di lavoro e sono aperti, questa pagina verrà ignorata. Nella pagina Progetti inaccessibili è possibile aprire tutti i progetti chiusi. Inoltre, verranno visualizzati i dettagli relativi a progetti non esistenti. Non è possibile applicare patch a progetti chiusi o che non esistono nello spazio di lavoro.
-
Nella pagina finale, fare clic su Fine per visualizzare un'anteprima delle modifiche patch nella vista Sincronizza.
Opzioni per l'applicazione di una patch
Sono disponibili le seguenti opzioni per ottenere corrispondenze valide per il file patch:
-
Ritornare alla prima pagina della procedura guidata Applica patch e
selezionare la risorsa corretta a cui deve essere applicata la patch.
-
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.
-
Utilizzare il pulsante 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.
-
Regolare il Fattore di corrispondenza (terminologia patch). Questo fattore indica la quantità di righe di contesto hunk da ignorare.
Se il valore del Fattore di corrispondenza è zero, è necessario associare tutte le righe.
Se il fattore di corrispondenza è maggiore di zero, ad esempio 2, le prime due righe di contesto prima
dell'hunk e le ultime due righe di contesto dopo l'hunk vengono ignorate.
Fare clic su Proponi per calcolare il fattore di corrispondenza che consente di associare la maggior
parte degli hunk.
-
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.
-
Per le patch dello spazio di lavoro è possibile selezionare un altro progetto nello spazio di lavoro a cui applicare le modifiche della patch. Per effettuare questa operazione, selezionare il progetto nel riquadro superiore e selezionare Sposta dal menu di scelta rapida. In questo modo verrà avviata una finestra di dialogo con un elenco di tutti i
progetti disponibili nello spazio di lavoro. Selezionare un progetto e fare clic su OK; le
modifiche della patch verranno applicate al progetto selezionato.
-
Utilizzare l'opzione Mostra esclusi
per mostrare gli hunk già selezionati da non includere nella patch.
-
Quando si esegue la sincronizzazione con una patch, le opzioni indicate in precedenza sono disponibili nel menu a discesa della vista Sincronizza.
È anche possibile passare da un modello all'altro per ottenere ulteriori informazioni sulle modifiche che vengono apportate.

Programmazione in team con CVS

Confronto di risorse
Sincronizzazione con il repository

Team
CVS