Quelle est la différence entre git-tf et git-tfs?

J’ai récemment eu vraiment marre de TFS. J’ai entendu dire qu’il y avait une lumière au bout du tunnel. Apparemment, je peux utiliser git-tf ou git-tfs et traiter mon code comme s’il était géré par git, mais être capable de pousser / tirer vers / depuis un serveur TFS central.

Ma principale question est que je ne suis pas sûr de savoir lequel d’entre eux je devrais utiliser. Il y a git-tf qui est officiellement supporté par Microsoft, et il y a git-tfs qui existe depuis beaucoup plus longtemps. Quelles sont les différences entre celles-ci et lesquelles dois-je essayer en premier?

    Clause de non-responsabilité: J’ai lancé le projet git-tf et bien que le projet soit désormais entre de très bonnes mains sans que je collabore fréquemment avec vous, vous devez absolument considérer que mes opinions sont fortement biaisées. (Et, en supposant que vous êtes sous Windows, peut-être inattendu.)

    Il y a deux différences fondamentales entre les deux outils:

    • git-tfs été créé pour les utilisateurs Windows et écrit par-dessus le kit de développement .NET TFS. Le SDK TFS ne fonctionnera pas sous Mono, ce qui rend git-tfs pour une utilisation multi-plateforme.

    • git-tf été construit pour les utilisateurs multiplates-formes et écrit sur le SDK Java TFS. Ainsi, il s’exécutera partout où Java TFS SDK prend en charge (Windows, Mac, Linux, AIX, HP-UX, Solaris, etc.). git-tf été explicitement créé pour permettre aux utilisateurs de Xcode d’accéder à TFS.

    Sur Windows, bien sûr, vous pouvez utiliser l’un ou l’autre. Je ne vais pas nécessairement dire que l’un est meilleur que l’autre. Mais je vais dire:

    1. Ma plus grande plainte à propos de git-tfs est que cela ne fonctionnera pas sous Mac OS. S’il y avait un moyen de faire git-tfs cross-platform, alors git-tf n’existerait presque certainement pas.

    2. git-tfs est plus rapide dans certains cas que git-tf . La performance n’était pas notre priorité dans les premières révisions, l’exactitude était.

    3. git-tf ayant une masortingce de support de plate-forme étendue, cela signifie que ses fonctionnalités sont nécessairement limitées. Par exemple, il n’y a pas d’ interface utilisateur. Par contre, git-tfs possède une commande checkintool qui ouvre la boîte de dialog normale de checkintool TFS. Cela peut être extrêmement utile pour visualiser vos modifications. (Si je me souviens bien, vous pouvez ouvrir une image différente à partir de là, etc.)

    4. git-tf fonctionne en remplissant directement le repository git, en téléchargeant les objects TFS directement dans la firebase database des objects git. git-tfs fonctionne en créant un mappage de dossier de travail TFS dans un dossier caché, puis en remplissant le référentiel git. Il y a une pénalité de disque ici, donc si vous avez des référentiels superginormeux, vous pourriez le ressentir.

    5. git-tfs peut essayer de mapper vos twigs TFS sur vos twigs git. Beaucoup de gens verront cela comme un positif pour git-tfs , bien que je ne le git-tfs pas: le modèle de twigment de git (au niveau du référentiel) et le modèle de twigment de TFS (représenté par des dossiers dans le référentiel) sont radicalement différents. dans tout sauf les workflows les plus simplistes. Mais votre kilométrage peut varier.

    6. git-tfs est activement développé par une communauté. git-tf n’a pas eu l’adoption de la communauté.

    Je ne veux pas donner l’impression que git-tf est mauvais. Ce n’est pas. Je pense que c’est vraiment très bon. Mais ce n’est peut-être pas votre meilleur choix.


    Mise à jour: git-tf a atteint la fin de sa vie . Il n’est plus maintenu ou pris en charge par Microsoft. Nous vous recommandons git-tfs si vous voulez une solution bidirectionnelle TFS <-> git.

    Disclaimer: Je suis un développeur sur le projet git-tfs

    Edit: git-tf n’est plus maintenu …

    Et maintenant, il y a un très bon support du twigment TFS dans git-tfs (récupérer des twigs existantes, créer des twigs, fusionner des twigs plus facilement qu’avec TFS, … en utilisant une commande de branch ).

    Voir:

    • Gestion des twigs avec git-tfs
    • Documentation de la commande git-tfs
    • Une autre réponse sur stackoverflow sur le sujet

    git-tfs est peut-être aussi le seul outil qui vous permette de migrer de TFS (VC) vers TFS (Git), de gérer des workitems si nécessaire, ou un référentiel plain git.

    Et d’autres bonnes fonctionnalités …

    (Et c’est plus actif et plus supporté )

    Pour quiconque trouve ce fil:

    Git-TF a été officiellement abandonné après avoir été mis à jour après 2013 et suggère désormais explicitement Git-TFS comme alternative.

    Git-TF Fin de vie

    Git-TF a atteint sa fin de vie. Il n’aura plus de mises à jour et ne sera plus pris en charge par Microsoft.

    Microsoft Visual Studio Team Services fournit désormais un outil d’importation simple pour importer un référentiel Team Foundation Version Control dans un référentiel Git. Nous vous recommandons de l’utiliser pour convertir les référentiels TFVC en Git.

    Si vous avez besoin de plus de besoins de conversion avancés ou si vous voulez créer un pont entre un repository TFVC et travailler avec un repository Git local, nous vous recommandons le projet git-tfs .

    Git-TF ne doit pas être utilisé pour de nouveaux projets, mais il restra dans les archives Codeplex pour les utilisateurs hérités.

    (Section ajoutée à la page codeplex du projet en avril 2017 par Edward Thomson, son initiateur et auteur de la réponse acceptée)

    Git-TFS semble être activement maintenu: https://github.com/git-tfs/git-tfs/commits/master