Visual Studio Team System
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.
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...
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
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
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
...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
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...
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!!!
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:...
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;
}
Full Visual Studio Team System Archive