Visual Studio Team System

Power Tools: Backup TFS

Per tutti quelli che non seguono il blog di Brian Harry: dalla prossima versione dei Power Tools sarà disponibile una procedura di backup VERAMENTE ALLA PORTATA DI TUTTI! Soprattutto per chi ha installato la versione Basic, i piccoli team che si aspettano una procedura di backup semplificata. Maggiori informazioni (veramente dettagliate): alla fonte.

posted @ giovedì 19 agosto 2010 10:03 | Feedback (0)

TFS Basic 2010: caratteristiche

Lorenzo ci ha insegnato ad installarlo, ma ancora parlato nessuno ci ha detto "perché é basic"... Premessa: TFS Basic sarà un'opzione di installazione di TFS 2010 (non un prodotto a parte). TFS Basic é "solo" il Source Control di TFS, ovvero rispetto a TFS "normale" vi mancano: - Tutto quello che é legato a Reporting Services (quindi niente grafici ficosi per manager, niente stato di avanzamento dei lavori, statistiche, ecc.). Ovviamente anche il Warehouse non c'é (perché fare statistiche se poi non le mostri a nessuno?). - Tutto quello che é legato a Sharepoint: quindi niente documentazione allegata (a meno che non vi...

posted @ giovedì 22 ottobre 2009 11:07 | Feedback (0)

[TFS] Security update per Team System Web Access

E' stato pubblicato un aggiornamento importante per Team System Web Access: TSWA  2008 SP1. Il download é disponibile anche per la versione in italiano. Fate attenzione: non si tratta di un update, ma di una full release per cui dovete prima disinstallare la vecchia versione. Fonte: Hakan Eskic

posted @ martedì 27 gennaio 2009 18:13 | Feedback (0)

[TFS] TFSDeleteProject non (sempre) cancella tutto il progetto

In TFS l'unico metodo per cancellare un progetto é tramite un tool a linea di comando: TFSDeleteProject. Alcune informazioni relative al progetto poterbbero però sopravvivere anche a questa operazione, in particolare: - Il TFSWarehouse non subirà alcuna modifica, i dati relativi al progetto rimarranno caricati. Per eliminare questi dati é necessario fare il rebuild del TFSwarehouse (vedi Setupwarehouse) - Le cartelle dove viene fatto il drop delle build non vengono toccate - Metadati dei workitem condivisi tra più progetti - Shelveset che contengono file provenienti da un altro progetto Maggiori informazioni: qui Fonte: neno's blog

posted @ mercoledì 21 gennaio 2009 10:33 | Feedback (0)

[TFS] Problemi con l'installazione di TFS?

Problemi con l'installazione di TFS? TFS non é il classico pacchetto Microsoft con un installazione "Avanti-Avanti-Fine" e spesso possono esserci dei problemi. Oltre al solito consiglio di attenervi scrupolosamente alla guida d'installazione (da scaricare nella versione più aggiornata qui) vi segnalo che é stata creata una guida per risolvere i problemi più ricorrenti. La trovate qui. Fonte: bharry's blog

posted @ mercoledì 7 gennaio 2009 16:16 | Feedback (0)

[Team System] Rimuovere i riferimenti al Source Control

...se dovesse servirvi, per eliminare i riferimenti al Source Control da una solution VS2003 dovete: eliminare tutti i file con estensione: vssscc, vspscc, scc, suo aprire i file di Solution ed eliminare la section "GlobalSection(SourceCodeControl)" aprire i file di progetto, navigare nel tag <VisualStudioProject> <VisualBasic (o <VisualStudioProject> <CSHARP) ed eliminare gli attributi: SccProjectName, SccLocalPath, SccProvider

posted @ mercoledì 12 settembre 2007 19:37 | Feedback (5)

[Team System] VS 2003 e progetti Web

Con la doverosa premessa che la paternità di questo post va condivisa con il buon Janky. Visual Studio .NET 2003 (credo anche 2002, ma, grazie a Dio, non devo pormi questa domanda) ha un comportamento che potrebbe sembrare piuttosto strano rispetto l'interazione tra i progetti Web e il Source Control. Avete mai provato a scaricare per la prima volta una Web application .NET 1.1 da Team Foundation Server e successivamente aprirla con Visual Studio? Quasi sicuramente vi sarà comparsa una schermata che vi propone di creare il binding tra il vostro codice sorgente ed il famigerato progetto web (che non...

posted @ lunedì 10 settembre 2007 19:16 | Feedback (2)

[Team System] TeamFoundationServerFactory e TeamFoundationServer.Dispose

Sempre sulla scia della mia indagine sugli oggetti TeamFoundationServer creati mediante TeamFoundationServerFactory ho notato un altro dettaglio: se creiamo più oggetti con la Factory e poi si invoca Dispose su uno di essi tutti gli oggetti diventano inutilizzabili (perché sono banalmente lo stesso oggetto)!!! TeamFoundationServer tfs1 = TeamFoundationServerFactory.GetServer("http://tfsrtmsp1:8080"); tfs1.Authenticate(); TeamFoundationServer tfs2 = TeamFoundationServerFactory.GetServer("http://tfsrtmsp1:8080"); tfs2.Authenticate(); tfs1.Dispose(); VersionControlServer vfs2 = (VersionControlServer)tfs2.GetService(typeof(VersionControlServer)); L'ultima linea, infatti, genera una bella NullReferenceException! In effetti basta verificare che object.ReferenceEquals(tfs1, tfs2) é effettivamente true! Quindi, se usate la Factory NON fate il dispose del TeamFoundationServer fino alla fine del programma a quando non siete certi che non ne usate più da nessuna parte!!!

posted @ martedì 4 settembre 2007 16:16 | Feedback (3)

[Team System] Consultare le label presenti

La documentazione MSDN in merito al metodo QueryLabels della classe VersionControlServer mi sembra poco chiara. In particolare esistono 3 overloads del metodo: public VersionControlLabel[] QueryLabels(string labelName, string labelScope, string owner, bool includeItems);public VersionControlLabel[] QueryLabels(string labelName, string labelScope, string owner, bool includeItems, string filterItem, VersionSpec versionFilterItem);public VersionControlLabel[] QueryLabels(string labelName, string labelScope, string owner, bool includeItems, string filterItem, VersionSpec versionFilterItem, bool includeDownloadInfo); I parametri sono in parte comuni, ma secondo me poco chiari: labelName: Nome della label cercata, se sconosciuta indicare null. labelScope: Il teamproject a cui é applicata la label. Potete anche indicare un folder del versioncontrol, ma verrà tenuto conto solo del team project, null se sconosciuto owner:...

posted @ martedì 28 agosto 2007 21:27 | Feedback (1)

[Team System] VersionControlServer.CreateLabel()

Una piccola nota sul metodo CreateLabel della classe VersionControlServer: l'ID della label da creare passata ovviamente non viene aggiornato, pertanto per avere l'oggetto label corretto é necessario ricaricarlo. public virtual VersionControlLabel CreateLabel(VersionControlLabel label, ItemSpec items, VersionSpec version) { VersionControlServer vcs = label.VersionControlServer; LabelItemSpec item = new LabelItemSpec(items, version, false); LabelResult[] res = vcs.CreateLabel(label, new LabelItemSpec[] { item }, LabelChildOption.Replace); if (res.Length > 0 && res[0].Status == LabelResultStatus.Created) { //Reload label per ottenere l'ID giusto! label = vcs.QueryLabels(label.Name, label.Scope, label.OwnerName, false)[0]; return label; } return null; }

posted @ martedì 28 agosto 2007 11:58 | Feedback (0)

Team System: data dei file

Estraendo files da un server Team Foundation la data dei files presenti sul disco viene impostata alla data in cui questi sono stati estratti. Non che ci veda niente di strano, anzi... Purtroppo però numerose persone che erano abiuate ad usare Visual Source Safe sentono questo come un problema (non chiedetemi perché, ma vi garantisco che almeno una decina di persone me l'ha segnalato). Soluzione? Creare un programmino (console) che imposti la data dei file NON ESTRATTI in base alla data dell'ultimo checkin (scusate la lunghezza): public static void ChangeDate(string ServerName, string workspaceName, string workspaceOwner, string pattern, bool subDirectories){    TeamFoundationServer tfs...

posted @ lunedì 30 luglio 2007 15:36 | Feedback (0)

TFS e ASP.NET: problemi con la session

Mi permetto di sconsigliarvi il connubio... Oltrte al già noto problema di accesso al registry si aggiunge un nuovo problema: se salvate nel nella session degli oggetti Item (files TFS) e cercate di ri-accedere all'oggetto VersionControlServer può darsi che quest'ultimo vi risulti loggato con delle credenziali diverse da quelle che avevano generato l'oggetto Item. In genere succede dopo alcuni minuti di inattività, MA SOLO su un server molto sovraccarico e non sul mio portatile. Perché? Promesso che appena lo scopro ve lo dico (sono già 2 giorni che cerco la soluzione senza riuscirci).

posted @ venerdì 27 luglio 2007 19:03 | Feedback (0)

VM Orcas beta 2 TFS+TeamSuite!

ATTENZIONE: HO RISOLTO IL PROBLEMA!!! Avevo dei problemi sul disco: ho effettuato uno scandisk e tutto si é felicemente risolto, scusate l'allarmismo, di solito ho gli scandisk pianificati, ma si trattava di un disco esterno che non é sempre connesso! Lascio il post originale (solo leggermente modificato). Non scaricatela... almeno se avete Vista Ci deve essere un file bacato: all'inizio del terzo file si blocca come se non ci fosse più spazio sul disco (ma io ho ancora 58 Gb!). Ho già provato ri-scaricando il file 3 e anche riscaricando tutti i files, ma il risultato é lo stesso! ...aspettando...

posted @ venerdì 27 luglio 2007 18:53 | Feedback (5)

Team System: TeamFoundationServerFactory.GetServer accede al registry - LA SOLUZIONE

Se cercate di creare un oggetto TeamFoundationServer da un thread che gira con un account utente che non ha le credenziali di scrittura sul registry incapperete nell'eccezione [SecurityException: Requested registry access is not allowed.] (come già descritto qui).Grazie all'inossidabile Lorenzo ed ai suoi preziosi contatti ho trovato la soluzione. Sostanzialmente (se ho ben capito) se specifico un server nei metodi (ed i loro rispettivi overloads):TeamFoundationServerFactory.GetServer(serverName)new TeamFoundationServer(serverName)passando come parametro il SOLO NOME del server viene effettuato dapprima un accesso in lettura alla chiave:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\TeamFoundation\Serversper verificare se esiste un server memorizzato con il nome passato, dappoi tenta l'accesso al server specificato sulla porta standard (8080)....

posted @ mercoledì 20 giugno 2007 18:48 | Feedback (0)

Team System: TeamFoundationServerFactory.GetServer accede al registry

E se il mio utente non ha permesso di scrivere nel registry?!Risposta: System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) +48Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable) +2780921 Microsoft.TeamFoundation.Client.RegisteredServers.OpenCurrentUser(Boolean writable, Boolean shouldCreate) +50 Microsoft.TeamFoundation.Client.RegisteredServers.GetUriForServer(String serverName) +43 Microsoft.TeamFoundation.Client.TeamFoundationServer.GetUriForName(String name) +93 Microsoft.TeamFoundation.Client.TeamFoundationServer.get_Uri() +25 Microsoft.TeamFoundation.Client.CheckAuthenticationProxy..ctor(TeamFoundationServer server) +22 Microsoft.TeamFoundation.Client.TeamFoundationServer.Authenticate(Boolean useProvider, ICredentialsProvider provider) +58 Microsoft.TeamFoundation.Client.TeamFoundationServer.Authenticate() +17 E tutto questo per memorizzare l'elenco dei server conosciuti per l'utente... Direi che sono DISCRETAMENTE senza parole... alla faccia di sviluppare con zero privilegi!!! Francamente per quanto mi sforzi non riesco a trovare nessuna soluzione SPECIALMENTE perché la mia é un'applicazione ASP.NET che dovrebbe girare con impersonation!!! :-S

posted @ martedì 19 giugno 2007 19:29 | Feedback (2)