Query Git programáticamente en Visual Studio

Acabamos de pasar del uso de TFS al uso de Git como nuestro VCS. Estamos conectados a Git y podemos hacer check-in con tanta facilidad.

Pero tenemos una extensión de Visual Studio que debe ser reescrita para Git. Usar TFS programáticamente fue bastante directo, pero no puedo hacer nada trabajando con Git. Los documentos de Microsoft están equivocados o lo estoy haciendo mal. Por ejemplo, para get una reference a un repository de Git, use TfsGitRepository y lo obtiene a través de TeamFoundationGitRepositoryService . Eso (supuestamente) existe en el espacio de nombres Microsoft.TeamFoundation.Git.Server . Pero cuando intenta agregar una reference, Visual Studio afirma que el espacio de nombres no existe; solo Microsoft.TeamFoundation.Git.Controls sí.

¿Alguien sabe de alguna documentation confiable para usar Git a través de Visual Studio? ¿O cómo hacerlo?

EDITAR

Estamos usando Visual Studio 2015

El espacio de nombre que mencionó está en la API del server TFS. No está disponible en el Modelo de objects de cliente TFS. Para trabajar con git localmente, asegúrate de tener un clon local y luego puedes hablar usando LibGit2 (no administrado), LibGitSharp (Administrado) o invocando y parsing git.exe directamente.

Visual Studio no incluye su propio model de objects para acceder a Git, realmente depende de estas bibliotecas estándar de código abierto. Visual Studio hasta 2015 incluye una versión de LibGitSharp. La próxima versión de Visual Studio (próximamente) incluye un nuevo enfoque para acceder a repositorys git y envuelve git.exe, realizando acciones contra git fuera de process. Se puede encontrar un contenedor en la carpeta de extensiones de Team Explorer, pero no estoy seguro de los niveles de soporte disponibles en esos ensamblados:

 C:\Program Files (x86)\Microsoft Visual Studio\VS15Preview\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer 

Si necesita verificar los repositorys git disponibles en el server TFS, debe usar la API REST para consultar los repos disponibles, luego soltar para clonar un repository git local después de search el repository correcto para clonar.