Usare gli osservatori

Un osservatore è il nome usato per la funzionalità di CVS per notificare gli utenti del deposito ogni volta che un file viene modificato o uno sviluppatore inizia a modificare un file. L'uso degli osservatori richiede che il file $CVSROOT/CVSROOT/notify sia correttamente configurato; questo non viene trattato qui: se ti servono maggiori informazioni sulla configurazione dal punto di vista dell'amministratore, vedi uno dei libri elencati in appendice.

La maggior parte del supporto per osservatori di Cervisia è costituito sei voci del menu.

Per aggiungere un osservatore a uno o più file, usa AvanzateAggiungi osservatore. Nella finestra che viene prodotta puoi scegliere di ricevere notifica per ciascun tipo di eventi supportati da CVS. Per esempio, se vuoi solo avere notifica del deposito di un file, segna le caselle Solo e Depositi. Se vuoi avere notifica di ogni evento relativo ai file indicati, spunta la casella Tutti. Il comando usato all'accettazione della finestra è:

cvs watch add -a commit nomi dei file

o con un'opzione simile, a seconda degli eventi che hai scelto di osservare.

Se alcuni file non ti interessano più, puoi rimuoverne gli osservatori. A tal fine, usa AvanzateRimuovi osservatore. Nella finestra che viene prodotta ci sono le stesse scelte usate nella finestra di aggiunta dell'osservatore. Quando confermi la finestra, Cervisia esegue il comando:

cvs watch remove nomi dei file

possibilmente con l'opzione -a per indicare gli eventi scelti.

Infine, puoi ottenere l'elenco delle persone che stanno sorvegliando dei file. Scegli AvanzateMostra osservatori. L'uso di questa voce del menu eseguirà il comando:

cvs watchers nomi dei file

Nell'uso normale di CVS, ogni sviluppatore lavora separatamente nella sua copia di lavoro. Quando vuole modificare dei file, gli basta aprirli con l'editor preferito e iniziare a lavorarci. Nessun altro saprà di questo lavoro finché il file non verrà depositato.

Per alcuni gruppi di sviluppatori, questo non è il modello di collaborazione preferito. Vogliono essere avvertiti quando qualcuno lavora su un file non appena inizia. Questo si può fare con qualche altro comando di CVS. Prima di iniziare a modificare un file, selezionalo dalla finestra principale di Cervisia e scegli AvanzateRiserva per modifica. Ciò eseguirà il comando:

cvs edit nomi dei file

Ciò invierà una notifica a tutti quelli che hanno impostato un osservatore di modifiche (edit) sul file. Inoltre, verrai registrato come redattore del file. Puoi ottenere un elenco di tutti i redattori di un certo file con AvanzateMostra redattori. Questo è come digitare sulla riga di comando:

cvs editors nomi dei file

Una sessione di modifica viene automaticamente terminata quando depositi il file in questione. In quel momento, viene inviata una notifica di disimpegno (unedit) a tutte le persone che hanno registrato un osservatore di modifiche sul file. Ovviamente, a volte non vorrai depositare il file, ma piuttosto interrompere la sessione e tornare alla versione precedente del file. Questo si fa usando AvanzateDisimpegna i file. Nota che Cervisia non chiederà conferma: ciò vuol dire che se usi questo elemento del menu, tutto il lavoro che hai fatto da quando hai usato AvanzateImpegna i file andrà perso. Per la precisione, Cervisia usa il comando:

echo y | cvs unedit nomi dei file

Finora abbiamo discusso solo il caso un cui impegni e disimpegni vengono usati volontariamente dagli sviluppatori. In aggiunta a ciò, CVS supporta un modello che impone l'uso di questi comandi. Il comando usato per passare a questo modello è cvs watch on, del quale non parleremo ulteriormente perché è usato essenzialmente dall'amministratore del deposito. Tuttavia, il concetto importante dal punto di vista dello sviluppatore è che quando il progetto impone gli impegni, le copie di lavoro sono prelevate in sola lettura. Ciò vuol dire che i file non si possono modificare immediatamente (a meno di barare usando chmod). I file diventano scrivibili solo quando si usa AvanzateImpegna i file, e vengono di nuovo resi di sola lettura quando depositi il file o usi AvanzateDisimpegna i file.

L'interfaccia di Cervisia aiuta a lavorare con questi progetti anche in un altro modo. Se avvii un editor su un file di sola lettura, facendoci doppio clic o usando FileModifica, non potresti poi salvarne le modifiche. C'è ovviamente un motivo: ogni volta che cambi un file, dovresti prima eseguire cvs edit, in modo che tutte le persone che lo stanno osservando abbiano notifica del tuo lavoro.

In tal caso, è consigliabile segnare l'opzione ImpostazioniEsegui automaticamente cvs edit quando necessario. Adesso, ogni qualvolta modifichi un file facendoci doppio clic, Cervisia eseguirà cvs edit prima di avviare l'editor. Puoi quindi modificare il file come fai normalmente. Quando hai finito, deposita i file, e questi saranno di nuovo resi di sola lettura.