Enumerar contenido en el gestor de fuentes de Team Foundation

Un pequeño ejemplo sobre como enumerar las carpetas de servidor del gestor de fuentes de Team Foundation.


Los aspectos clave de este ejemplo:


 Cómo establecer una conexión con el servidor TFS
 Cómo solicitar un servicio, en este caso el servicio de gestión de versiones. Para conocer otros servicios existentes ver el documento ‘Team Foundation Server Object Model’ del SDK de Visual Studio 2005.
 Cómo enumerar y filtar los elementos que se encuentrar en el gestor de fuentes.


Para compilar el código basta crear una aplicación de consola, pegar el código y establecer una referencia a los esamblados necesarios de Team System (Microsoft.TeamFoundation.Client.dll, Microsoft.TeamFoundation.Common, Microsoft.TeamFoundation.VersionControl.Common, Microsoft.TeamFoundation.VersionControl.Client) que tipicamente se encuentran en %ProgramFiles%Microsoft Visual Studio 8Common7IDEPrivateAssemblies


Aquí va el código:


using System;
using System.Globalization;
using System.IO;
using Microsoft.TeamFoundation;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.TeamFoundation.VersionControl.Common;


namespace TFSProjFoldersEnum
{
 class Program
 {
  static void Main(string[] args)
  {
            //Establecer la conexión son el servidor Team Foundation
   TeamFoundationServer server = TeamFoundationServerFactory.GetServer(«http://localhost:8080«);
            //Establecer la conexión servicio de control de versiones de servidor
   VersionControlServer vcserver = (VersionControlServer)server.GetService(typeof(VersionControlServer));


            //Obtenemos los items
            //La función GetItems permite establecer:
            //Desde que punto del arbol de fuentes queremos comenzar la enumeración ($/ es la raiz, podriamos establecer un directorio $/dir/dir1)
            //Que versión deseamos
            //Si queremos recursividad o no
            //Si queremos que aparezcan los elementos que han sido eliminados
            ItemSet itemSet = vcserver.GetItems(«$/», VersionSpec.Latest, RecursionType.Full, DeletedState.NonDeleted, ItemType.Folder);
            for (int i = 0; i < itemSet.Items.Length; ++i)
            {
                //Simplmente mostramos el nombre pero la clase item tiene métodos y
                //propiedades que permiten optener su tamaño, su tipo, descargarlos, etc…
                Console.WriteLine(itemSet.Items[i].ServerItem, itemSet.Items[i]);
            }


            Console.ReadLine();
  }
 }
}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *