Tempo fa avevo raccontato alcune peripezie per installare un TFS Workgroup edition da smandruppare con i test.

Dopo qualche mese di utilizzo, devo dire che sono rimasto molto soddisfatto del funzionamento: dopo le ultime esperienze con SVN e TeamCity, posso dire che sicuramente TeamSystem è un bel passo avanti, sia per la facilità nella configurazione della Continuous Integration, i tool di merging già integrati, e via dicendo. Purtroppo, il costo è ancora irraggiungibile per una struttura come la mia, e le difficoltà di installazione sono comunque notevoli anche nella versione 2008 che è decisamente migliorata rispetto alla 2005. In sostanza, credo che rimarrò con SVN+TeamCity per la condivisione dei progetti con più utenti (anche su web via HTTP, usando Visual SVN è quasi un gioco da ragazzi) e usero TeamSystem per i progetti interni dove il limite di 5 persone non pesa più di tanto.

Una cosa che ho notato, è che la modalità di amministrazione integrata in Visual Studio è assolutamente inutile se non si è dentro ad un dominio... perchè se devo aggiungere un utente, devo aggiungerlo come utente della macchina su cui risiede TeamSystem... purtroppo, a meno di non installare un visual studio su tale macchina, non ho trovato un modo per connettermi al repository utenti remoto, se non è in dominio, ed aggiungerlo.

Quindi, bisogna rimboccarsi le maniche e piantare giù due bei comandi da prompt, per aggiungere un utente e renderlo operativo. Lo strumento da utilizzare è "tfssecurity.exe" e si trova sotto "%program files%\Microsoft Visual Studio 2008 Team Foundation Server\Tools".

Dopo essersi assicurati di aver fatto login sulla macchina come amministratore di TFS (e NON come amministratore della macchina... altrimenti vi risponderà picche) bisogna assicurarsi di aggiungere l'utente sotto il gruppo dei Licensed Users:

tfssecurity  /server:petrus /g+ "[server]\Team Foundation Licensed Users" n:"PETRUS\Nome Cognome"

Ovviamente, il mio server TFS si chiama petrus, e l'utente Nome Cognome è per forza aggiunto agli utenti locali della macchina, non avendo un dominio di appoggio.

Fatto questo, posso aggiungerlo ad ogni progetto con il grado di permission che voglio:

tfssecurity  /server:petrus /g+ "[TestProjectRoot]\Project Administrators" n:"PETRUS\Nome Cognome"

In questo caso ho aggiunto l'utente "Nome Cognome" al progetto "TestProjectRoot" come amministratore. A questo punto, lo vedo tranquillamente anche dal TeamExplorer locale e posso decidere di cambiare o modificare le permission senza toccare la riga di comando!