[Team System] Scaricare il codice etichettato con una label

Ci sono vari modi per scaricare del codice a partire da una label, il più corretto é indubbiamente costruire una GetRequest che prenda gli Item di un certo Path a partire dalla versione della Label:

private static void GetFromLabelVersion(VersionControlServer vcs, VersionControlLabel label, string folder, string workSpaceName, string workSpaceOwner)
{
    //Ottengo il WorkSpace da Nome e Owner
    Workspace workspace = vcs.GetWorkspace(workSpaceName, workSpaceOwner);
    //Riferimento alla versione "della label"
    VersionSpec version = new LabelVersionSpec(label.Name, label.Scope);
    //Costruisco la richiesta
    GetRequest request = new GetRequest(folder, RecursionType.Full, version);
    //Scarico dal WorkSpace
    workspace.Get(request, GetOptions.None);
}

Quello che invece sembra il più intuitivo é in realtà il più sbagliato: costruire delle richieste usando gli item caricati nella Label stessa uno per uno e specificandone il ChangeSetId:

List<GetRequest> requestsList = new List<GetRequest>();
foreach (Item item in label.Items)
    requestsList.Add(new GetRequest(new ItemSpec(item.ServerItem, RecursionType.None), item.ChangesetId));
GetRequest[] requests = requestsList.ToArray();

Questa é un'ottima idea se volete che il SQL Server del vostro TFS si metta a piangere e i colleghi vi coprano di insulti perché avete incrocchiato il server per mezz'ora...

Print | posted on giovedì 13 settembre 2007 20:47

Comments on this post

# re: [Team System] Scaricare il codice etichettato con una label

Requesting Gravatar...
Anche perchè non si capisce il motivo di ciclare gli item di una label quando "qualcuno" ha inventato LabelSpec...
Left by Giancarlo Sudano on set 14, 2007 10:43

# re: [Team System] Scaricare il codice etichettato con una label

Requesting Gravatar...
Giusto, ma come sempre non si trova in giro alcun esempio di una Get da label... All'inizio temevo che fare la Get con un LabelVersionSpec cercasse di scaricarmi tutti i file della label, per cui avevo deciso di filtrarli "a mano", dopo mi sono reso conto che invece crea una "maschera in AND" con i parametri path e recursion!
Left by Michele Bernardi on set 14, 2007 11:19
Comments have been closed on this topic.