Intégration de Git avec TFS (Team Foundation Server)

Si vous suivez régulièrement ce blog, il ne vous aura sans doute pas échappé l’intérêt certain pour la forge GitHub et son côté communautaire en termes de développement.

image

Pour celles et ceux qui arriveraient sur ce blog en cours de route, c’est sur cette forge que sont hébergés en particulier nos deux principales solutions sous licence libre Microsoft Public License (Ms-PL) à savoir OGDI (Open Government Data Initiative) DataLab et ODAF (Open Data Application Framework) Openturf qui représentent respectivement :

  • Notre plateforme de publication de données ouvertes avec sa gestion multi-catalogues de données ouvertes et son service de donnée RESTful à destination des applications Web riches, clients mobiles, de BI (Business Intelligence), etc. Cette solution communautaire retenue notamment par les départements des Bouches-du-Rhône et de la Saône et Loire, la Ville de Versailles et la communauté d’agglomération de Versailles Grand Parc, etc. est  disponible sur la forge GitHub ici;
  • Le Framework applicatif associé à destination notamment des environnements mobiles Android, iPhone/iPad et Windows Phone. Cette solution communautaire utilisée par exemple par le département de la Saône et Loire pour l’attractivité des territoires est disponible sur la forge GitHub ici.

Si nous avons opté pour cette forge présentant nombre d’avantages dont une partie est énumérée dans un précédent billet, il n’est cependant pas rare de voir des projets, principalement en .NET, évoluer sur une plateforme TFS (Team Foundation Server) tandis que leur(s) homologue(s) fonctionnant sur une autre plateforme est hébergé sur Git. Il serait donc intéressant de centraliser ces projets en seul et même endroit tout en gardant les avantages des différents outils.

image

C’est ici qu’intervient Git-TF. Disponible dès maintenant sur le Centre de téléchargement Microsoft, Git-TF est un ensemble d’outils multiplateformes fonctionnant en ligne de commande qui permet à Git et TFS (2008, 2010 ou 2012) d’interagir entre eux. (A l’heure actuelle, Git-TF ne prend pas en charge la version SaaS Team Foundation Service dans le Cloud de TFS.)

Au-delà d’une simple fonctionnalité, la mise à disposition de tels outils permet de rapprocher les deux écosystèmes créés autour de Git et de TFS et ainsi, de faciliter la collaboration entre les différents acteurs.

Pour un bref rappel, TFS est une plateforme de collaboration offrant à la fois une gestion avancée des codes source mais aussi une gestion approfondie du cycle de vie des applications (ALM ou Application Lifecycle Management). Pour plus d’informations sur la plateforme TFS, rendez-vous ici.

Ainsi, il devient aisé pour un développeur travaillant sur XCode et utilisant l’intégration native de Git de collaborer avec une équipe évoluant sur des projets hébergés sur TFS. C’est donc cette fois-ci une communication à double sens qui est possible et qui permet à tout un chacun d’utiliser TFS ou Git quelle que soit sa plateforme de développement. Ceci rejoint également un précédent billet sur la prise en charge de Git et de GitHub sur Windows avec GitHub for Windows.

Un grand nombre de plateformes est aujourd’hui supporté par Git-TF. A titre d’exemple, nous pouvons citer Windows (de Windows XP SP3 à Windows 8), Linux, Mac OS X (10.4 à 10.6), ou encore Solaris (8 à 10).

En termes de fonctionnalités apportées par l’intégration, Git-TF répond en l’état aux besoins classiques des habitués de Git. Il offre, pour cette première version, notamment la possibilité d’exécuter des commandes basiques de Git vers un serveur TFS. Les commandes suivantes sont ainsi disponibles : clone, commit, pull, checkin ou encore push. Le développement communautaire en cours de la prochaine version est destiné à compléter ce jeu de commandes afin de tirer le meilleur parti de Git et de TFS pour les utilisateurs les plus avancés de Git. (Si cela vous intéresse, vous pouvez y prendre part dès à présent ici).

Par ailleurs, Git-TF est prévu pour un fonctionnement en cohabitation avec Git. De ce fait, vous gardez la puissance de Git pour une utilisation courante et vous pouvez à tout moment utiliser Git-TF pour transférer votre travail sur TFS.

Si vous désirez dès à présent installer les outils Git-TF sur votre poste, rendez-vous sur le Centre de téléchargement Microsoft.

Installation sous Windows

IMPORTANT : Avant toute chose vous devez avoir installé un environnement runtime Java sur votre poste de travail.

Une fois le paquet téléchargé, extrait et java d’installé, il vous faut ajouter 1 élément à la variable d’environnement PATH.

  • Pour cela, ouvrez un explorateur Windows, faîtes un clic droit sur Ordinateur puis Propriétés et Paramètres systèmes avancés.
  • Dans la nouvelle fenêtre Propriétés système, cliquez sur Variables d’environnement.

image

  • Recherchez ensuite dans la fenêtre Variables d’environnement dans la partie Variables systèmes le nom Path.

image

  • Nous allons à présent ajouter le chemin vers l’environnement Java installé. Pour cela, dans le champ Valeur ajoutez à la suite : « ;C:\Program Files (x86)\Java\jre7\bin » (pour le runtime Version 7 Update 7, à adapter en fonction).
  • Cliquez OK pour valider les modifications.
  • Ouvrez ensuite un invite de commandes et rendez-vous dans le répertoire d’extraction et tapez « git-tf.cmd ». Ceci vous affichera les commandes disponibles :

image

En guise de conclusion

Si, pour vous, l’utilisation de Git et de TFS est courante ou si vous rencontrez des problèmes de collaboration sur certains projets dus à un environnement exotique sur ces deux outils, Git-TF devrait vous apporter une aide non négligeable.

En rapprochant ainsi deux écosystèmes différents, Git-TF essaiera sans doute dans un avenir plus ou moins proche de tirer parti des fonctionnalités les plus utiles, et surtout auxquelles sont habitués les développeurs, de ces 2 mondes pour offrir un outil puissant de collaboration centralisée multiplateforme.

Pour le moment il permet une collaboration améliorée entre les développeurs et un rapprochement, souvent réclamé, entre TFS et Git. C’est déjà cela ;)

Pour plus d’informations sur Git-TF, nous vous encourageons à visiter le billet suivant et à visionner la petite vidéo de 15 minutes proposée : Announcing Git Integration with TFS.

De même, vous pouvez consulter le code source de Git-TF disponible sous licence libre à l’adresse suivante https://gittf.codeplex.com/.

Bonne découverte de Git-TF.