Capitolo 5. Uso avanzato

Aggiornare a tag, ramo o data

I rami di un modulo sono versioni parallele dello stesso. Un buon esempio concreto dell'uso di questa funzione è il rilascio di un progetto software. Dopo un rilascio importante ci sono errori da correggere nel codice, ma gli sviluppatori vogliono anche aggiungere nuove funzioni. È molto difficile fare entrambe le cose allo stesso tempo, perché le nuove funzioni di solito introducono nuovi errori, rendendo difficoltosa la ricerca di quelli vecchi. Per risolvere questo dilemma, CVS permette di creare una versione parallela, che chiameremo il «ramo del rilascio stabile», dove si possono solo fare correzioni, lasciando il ramo principale (HEAD) aperto all'aggiunta di nuove funzionalità.

I tag si usano per segnare una versione di un progetto. CVS timbra una versione di ogni file con il tag, cosicché quando prelievi o aggiorni a un certo tag, trovi sempre le stesse versioni dei file; quindi, al contrario dei rami, i tag non sono dinamici: non si può sviluppare su un tag. I tag sono utili a segnare i rilasci, grandi cambiamenti nel codice, eccetera.

Quando sviluppi o stai seguendo lo sviluppo di un progetto, non è detto che lavori sempre sul ramo principale. Dopo un rilascio, potresti voler stare per un po' sul ramo di rilascio, per approfittare della sua stabilità, correggere gli errori, tradurre il codice sorgente, eccetera. Per fare tutto ciò, devi aggiornare al ramo di rilascio. Tutti i tuoi file saranno aggiornati all'ultima versione dei file in quel ramo. Dopo l'aggiornamento, anche tutti i tuoi nuovi depositi saranno inviati nel nuovo ramo.

Inoltre, se vuoi seguire un errore segnalato in un rilascio precedente che ha un tag, CVS dà la possibilità di recuperare il programma così come è stato rilasciato, aggiornando a quel tag. Inoltre, se vuoi recuperare una versione precedente del progetto, puoi aggiornare la copia di lavoro a una certa data. Ciò potrebbe essere utile se nel progetto è stato introdotto un errore tra i due rilasci, e hai un'idea di quando sia successo. Quando aggiorni a una data o a un tag, le versioni dei file saranno le stesse delle versioni a quella certa data o le versioni timbrate da quel tag.

Avvertimento

Prima di aggiornare a un diverso ramo o tag, assicurati di aver depositato tutte le tue modifiche al ramo su cui stai lavorando. Se non sei pronto a depositarle, ma non vuoi buttarle via, non aggiornare al nuovo ramo, perché le potresti perdere. In alternativa, puoi fare un nuovo prelievo per lavorare in parallelo su entrambe le versioni.

Figura 5.1. Schermata della finestra di aggiornamento a tag di Cervisia

Schermata della finestra di aggiornamento a tag di Cervisia

Aggiorna a ramo

Seleziona questa opzione per aggiornare a un ramo. Inseriscine il nome nella casella di testo a cascata (o premi il pulsante Recupera lista per prendere l'elenco di rami dal server CVS, e selezionare quello che vuoi nella casella a cascata).

Aggiorna a tag

Seleziona questa opzione per aggiornare a un tag. Inseriscine il nome nella casella di testo a cascata (o premi il pulsante Recupera lista per prendere l'elenco di tag dal server CVS, e selezionare quello che vuoi nella casella a cascata).

Aggiorna a data

Seleziona questa opzione per aggiornare a una data. Nel campo sottostante puoi inserire un'ampia varietà di formati di data. Un formato possibile è aaaa-mm-gg, dove aaaa è l'anno, mm il mese (in numeri), e gg il giorno. In alternativa si possono usare alcune frasi in inglese, come yesterday (ieri) e 2 weeks ago (due settimane fa).

Nota

L'aggiornamento a un tag o a una data li «fissa», cioè non permette di depositare altre modifiche ai file (a meno che il tag sia il tag di un ramo). Per tornare al ramo principale, usa l'elemento del menu AvanzateAggiorna a HEAD.

Il comando eseguito per aggiornare a un ramo o tag è:

cvs update -r tag

Il comando eseguito per l'aggiornamento a una data è:

cvs update -D data

Il comando usato per aggiornare al ramo principale (HEAD) è:

cvs update -A