Esclusione di risorse dal rilascio

Quando si esegue la sincronizzazione delle risorse, è possibile che ci siano delle risorse che non si desidera rilasciare nel flusso.  Sono disponibili due funzioni di esclusione che consentono di specificare quali risorse escludere dalle operazioni di selezione e rilascio.

La prima è una funzione di esclusione globale, fornita dal workbench. La seconda è la funzione di esclusione di CVS, che legge il contenuto di un file speciale .cvsignore per determinare cosa escludere.

Perché escludere dei file quando si esegue la sincronizzazione?

Ci sono molti file che un utente potrebbe non volere rilasciare nel repository.  Ad esempio, è possibile che degli editor esterni creino dei file temporanei nel progetto dell'utente.  La compilazione dei file .java crea dei file .class e
in modo analogo, molte operazioni di build determinano la creazione di file binari. Questi file, nel loro complesso, possono raggiungere notevoli dimensioni.  Inoltre, è possibile che essi vengano nuovamente generati ogni volta che viene eseguita un'operazione di build, determinando molte modifiche  in atto. Di norma, questi non sono file che un utente desidera condividere con gli altri membri di un team oppure memorizzare nel repository.  

Funzione di esclusione globale

Una funzione di esclusione globale viene fornita dal workbench attraverso la pagina delle preferenze Team. Viene fornito un elenco di modelli di file con i quali le risorse vengono confrontate prima di essere considerate come adatte al controllo versione.  Questi modelli possono contenere i caratteri jolly "*" e "?".  "*" rappresenta una qualsiasi sequenza di zero o più caratteri.  "?" rappresenta qualsiasi carattere.  Ad esempio, è possibile specificare un modello "*~" come corrispondenza per qualsiasi file temporaneo che termina con "~".   Qualsiasi file o directory che corrisponde a uno qualsiasi dei modelli verrà ignorato durante  le operazioni di cattura o di rilascio.  Quando si specifica un modello di file da ignorare, è possibile disabilitare temporaneamente tale esclusione deselezionando il modello dall'elenco, senza doverlo rimuovere.

I modelli della funzione di esclusione globale vengono confrontati con i nomi di risorse durante un'operazione di sincronizzazione.  È importante notare che il percorso che conduce al nome della risorsa non viene incluso nell'operazione di ricerca della corrispondenza.  Ad esempio, per il file "/path/to/file.txt", viene confrontata con i modelli solo la stringa "file.txt".  Questa funzione non è intesa per la specifica di nomi di percorso completi, ma per la specifica di modelli applicabili globalmente.

Funzione di esclusione CVS

Il client CVS Eclipse riconosce un file denominato ".cvsignore" in ogni directory di un progetto.  Questa è una funzione CVS standard e molti progetti CVS esistenti potrebbero contenere questo file.

Tale file di testo è composto da un elenco di file, directory o modelli.  Come per la funzione di esclusione globale, i caratteri jolly "*" e "?" possono essere presenti in qualsiasi voce del file .cvsignore.  Tutti i file o le sottodirectory della directory corrente che corrispondono a uno dei modelli verranno ignorati.  È importante notare che la semantica di questo file è diversa da quella della funzione di esclusione globale, in cui si applica solo a file e  directory presenti nella stessa directory dello stesso file .cvsignore.  Un progetto può contenere un file .cvsignore in ogni directory.  Per ulteriori informazioni, fare riferimento al sito  http:\\www.cvshome.org. 

Quando una risorsa viene ignorata

Una volta sottoposta a controllo versione, in seguito una risorsa può essere difficilmente ignorata.  Una risorsa viene sottoposta a controllo versione quando, per la prima volta, un'operazione di sincronizzazione viene eseguita sulla risorsa o su una qualsiasi delle relative cartelle principali.  Quindi, prima di eseguire l'operazione di sincronizzazione per la prima volta,  considerare i file e le directory che si desidera vengano ignorate e aggiungerli alla funzione di esclusione appropriata.  Ad esempio, osservare il seguente scenario:

  1. Creare il file "file.txt".
  2. Sincronizzare "file.txt" con il server.
  3. Aggiungere "file.txt" o un modello di corrispondenza a .cvsignore o alla funzione di esclusione globale.
  4. Modificare file.txt.
  5. Sincronizzare "file.txt" con il server.
  6. Notare che file.txt viene elencato come una modifica in uscita.

Esclusione delle risorse presenti nella visualizzazione Sincronizzazione

Se è stata selezionata l'operazione Team > Sincronizza con flusso, ma la risorsa non è ancora stata rilasciata, è ancora possibile escluderla.  Ciò indipendentemente dal fatto che il workbench considera già questi file sotto il controllo versione.  È prima necessario cancellare i file da escludere (ciò non costituisce un problema dato che i file esclusi sono file temporanei o risultati della creazione di file importanti, cioè dell'origine).  Quindi, aggiungere il modello di esclusione utilizzando il meccanismo di esclusione globale o CVS.  A questo punto è possibile ricreare il progetto in modo che i file esclusi vengano ripristinati e sia possibile eseguire la sincronizzazione del progetto con il flusso. Ora i file verranno ignorati.