Puente entre TFS y Git para control de código en paralelo

viernes, 14 de septiembre de 2012

Una alternativa para casos especiales

A veces un repositorio de código está alojado en Team Foundation Server - y no puede cambiarse esa decisión - pero uno necesita interactuar desconectado del mismo durante un lapso más o menos prolongado (en términos de la cantidad de modificaciones aplicadas). O simplemente, las preferencias personales por Git - fácilmente entendibles - hacen que para una serie de cambios que requieran un manejo flexible del control de código, se busque la forma de aprovechar las ventajas de Git.

git-tfs

Para resolver las tareas de identificar los cambios realizados sobre el repositorio Git (agregados, eliminaciones y modificaciones) y expresarlos en uno o más "changesets" de TFS, Matt Burke desarrolló un conector que funciona como puente entre los dos sistemas de control de cambios: git-tfs

Despues de instalar el conector copiando los ejecutables a alguna carpeta y agregando la misma al PATH, se dispone de una serie de comandos 'git tfs' que funcionan como extensiones al git; eso permite:
  1. Crear un repositorio Git a partir de un proyecto o carpeta de TFS, ya sea con su "última foto" o con su historial completo de cambios.
  2. Sobre eso puede operarse con todas las facilidades de Git (branches, etc) haciendo "commits" (de Git) sobre el repositorio
  3. Para generar un "changeset" de TFS se utiliza el comando 'git tfs checkintool'
  4. Tambien pueden traerse cambios subidos al TFS despues de la bifurcacion inicial, mediante las secuencia de comandos 'git tfs fetch' y 'git tfs merge' (o 'git tfs rebase')
La información más detallada puede leerse en el proyecto git-tfs en GitHub, y tambien en esta entrada de blog (en inglés) de Jeremy Skinner.

Leer más...