Finalmente Brian Harry ha svelato un po di modifiche effettuate al Source Control System di TFS. Uno degli appunti che molti fanno a TFS è infatti il modello usato di source control, che prevede file in read only su disco, che diventano scrivibili quando viene effettuato il checkout. Mi è già capitato tempo fa di parlare del perché di questa scelta, e Brian Harry nel suo post lo conferma.
Il modello attuale di TFS prevede che il client crei un WORKSPACE con cui i file del source control vengono mappati in locale e lo stato del WORKSPACE viene manutenuto dal server, che ha quindi necessità di essere informato di ogni operazione. Per questa ragione i file sono in read-only, per evitare che qualcuno li vada a modificare senza passare per la procedura di Check-out. Questo modello a molti non piace, ma ha l’indubbio vantaggio di migliori performance durante il get-latest, perchè il server sa lo stato del WORKSPACE ed è in grado di inviare solamente le modifiche necessarie. Per chi usa subversion ed ha progetti con moltissimi file sorgente, le operazioni di Update spesso sono lente perchè il client deve esaminare tutti i file locali per trovare quelli modificati, ed infatti io ho progetti in cui gli update da me sono velocissimi (ho un disco SSD) mentre chi ha un normale 7.200 RPM mi dice testualmente che durante un update la macchina è completamente inchiodata.
TFS dev11 introduce quindi un altro tipo di WORKSPACE, chiamato “local workspace”, che funziona a-la subversion, per soddisfare le esigenze di chi preferisce comunque il modello subversion, e magari ha progetti non troppo grandi che quindi non soffrono di perdita di performance. Il nuovo workspace sarà il default e permetterà di migliorare l’esperienza offline di TFS, sebbene non siano ancora disponibili funzionalità di offline checkin tipiche dei DVCS.
Vi invito a leggere il post e guardare il video allegato che mostra queste funzionalità live.
Alk.