[Step by Step] Come cancellare i file *solo* dal disco locale con TFS

Team Foundation Server ha, a differenza di altri strumenti di Version Control, il concetto di Workspace (area di lavoro), ovvero il mapping fra una o più cartelle sul Server con una o più cartelle sul client (in verità anche singoli file…) che consente di gestire una serie di operazioni tra cui la get latest “intelligente”, la rimozione dei file che sono stati cancellati dal server durante la get, etc…

La maggior parte delle “incomprensioni” o dei problemi nell’uso di TFS riguarda proprio la non conoscenza del funzionamento dei Workspace.

Una delle domande che mi è stata rivolta durante l’ALM Day è stata: “come faccio a cancellare dei file localmente, senza rimuoverli dal TFS, e senza che il Workspace resti disallineato?”.

La risposta è molto semplice se si conosce il funzionamento dei Workspace e il concetto di Changeset (insiemi di modifiche). Normalmente se si cancella un file da Windows Explorer, il TFS non sa che il file è stato cancellato, per cui ad una operazione di Get Latest Version non recupererà il file. Per recuperarlo bisognerà fare una Get Specific Version dell’ultima versione specificando l’opzione “Force Get”. Se invece si cancella un file dal Team Explorer, questo verrà rimosso dal Server e da tutti i client alla successiva operazione di Get.

Come fare quindi a cancellare un file o una cartella senza rimuoverli dal TFS e senza perdere l’allineamento?

image

E’ molto semplice, basta fare una Get Specific Version del Changeset #1.

image

Il Changeset #1 è quello che viene creato durante il setup di TFS (guardando la data e l’ora del Changeset #1 è possibile determinare la data di installazione del server…) ed è vuoto, in quanto contiene solo la root del Version Control.

image

Facendo una Get del Changeset #1 di un singolo file o di una cartella, questi verranno “rimossi” dal disco locale, visto che non erano presenti alla creazione del TFS. Il loro stato da nero diventerà grigio e i file saranno “Not Downloaded”.

image

Maggiori informazioni possono essere trovate sul blog di Martin Woodward.

Lorenzo