web-dev-qa-db-fra.com

Quelles sont les grandes différences entre TFVC (TFS Version Control) et Git pour le contrôle de source lors de l'utilisation de Visual Studio 2013?

Il y a une foule de questions et de réponses sur le contrôle de code source GV par rapport à TFVC, mais aucune réponse actuelle ne couvre l'intégration de Git dans Team Foundation Server/Service que je peux trouver.

Je commence le développement de pâturages verts en utilisant une grande variété de langages (C #, C++, PHP, Javascript, MySSQL) à l'aide de Visual Studio 2013. À l'avenir, il y aura un développement iOS. Je connais très bien SVN, VSS et TFVC pour le contrôle de source. Cependant, je n'ai jamais utilisé Git. Je préfère TFS pour la gestion de processus/le développement agile ... Ce n'est pas parfait, mais s'intègre bien dans Visual Studio.

Alors, pour m'aider à choisir entre ces deux systèmes ...

Quelles sont les grandes différences entre TFVC et Git pour le contrôle de source lors de l'utilisation de Visual Studio 2013?

  • Dans mon cas, le seul avantage est-il un référentiel local (ne pas dire que c'est insignifiant) et une prise en charge du développement iOS?
  • C’est le seul inconvénient de Git sur l’interface en ligne de commande (certains diront que ce n’est pas un inconvénient ;-P).
  • Avez-vous déjà utilisé l'interface graphique de Visual Studio 2013 pour Git? Est-ce suffisant pour prendre en charge la création de branches/fusion sans l'interface de ligne de commande?
  • Existe-t-il un guide de démarrage détaillé pour Git indiquant que Git est utilisé avec Visual Studio 2013? Microsoft a une vidéo sur l'intégration d'un référentiel Git existant dans Visual Studio 2013, mais je cherche à repartir à zéro avec Git et VS 2013.

Je ne cherche pas un livre ici, mais quelques points et peut-être des liens pertinents de gens qui ont utilisé à la fois TFVC et Git.

98
Greg Grater

Quelles sont les grandes différences entre TFS et Git pour le contrôle de source lors de l'utilisation de VS 2013?

MSDN a une page très complète sur toutes les fonctionnalités et les différences entre Team Foundation Version Control et Git .

Dans mon cas, le seul avantage est-il un référentiel local (ne dis pas que c'est insignifiant) et un support de développement IoS?

Non, il y en a beaucoup plus, mais ce sont souvent des scénarios avancés de Git. Le repo local, le support hors ligne et la fidélité locale totale sur l'historique sont incroyablement puissants. Vous obtenez cela immédiatement avec Visual Studio. Il y a quelques autres fonctionnalités qui sont très bien aussi! La possibilité de créer des branches et de fusionner d’un référentiel à un autre est très puissante. Je vous recommande de regarder le livre Pro Git pour ceux-là. Git dans TFS est juste un autre serveur Git, il a à peu près toutes les fonctionnalités du Git standard.

La possibilité de réécrire l'historique avant la fusion vous permet de supprimer ou de combiner un certain nombre d'ensembles de modifications plus petits, de sorte que l'historique soit plus propre et plus facile à lire en tant qu'être humain.

C’est le seul inconvénient de Git sur l’interface en ligne de commande (certains diront que ce n’est pas un inconvénient ;-P).

TFVC a aussi une ligne de commande, les gens ne l'utilisent tout simplement pas. Pour ceux qui veulent utiliser Git et ne font jamais plus que TFVC, ils n'auront probablement pas vraiment besoin de quitter l'interface utilisateur, ils n'auront pas beaucoup de fonctionnalités intéressantes ...

Il pourrait y avoir quelques autres inconvénients, principalement dus au fait que c'est différent de ce à quoi les gens sont habitués. Ce n'est pas trop difficile de se tirer une balle dans le pied si vous ne prenez pas le temps d'apprendre ce que le git fait quand vous faites des choses. Des choses comme Rebase et Squash sont vraiment puissantes et créent une histoire très propre, mais cela peut laisser aux gens le problème de ne pas pouvoir les fusionner s'ils ne sont pas utilisés correctement. TFS a la capacité de définir des paramètres de sécurité pour supprimer les droits permettant de prendre des décisions très stupides sur un référentiel git .

Un très bon complément pour les utilisateurs de Git sous Windows est PoSHGit . il fournit l'auto-complétion de commande sur la ligne de commande Powershell.

Avez-vous déjà utilisé l'interface graphique VS 2013 pour Git? Est-ce suffisant pour prendre en charge la création de branches/fusion sans l'interface de ligne de commande?

Il a tout ce dont vous avez besoin pour les opérations de base. Mais vous devez être capable de visualiser les différentes branches pour savoir ce qui se passe. Comme le serveur Git et le référentiel local ne sont que Git, tout client git peut vous aider. SourceTree est une option ici. Le client Git pour Windows en est un autre.

Pour les opérations standard, archivage, extraction, fusion, branche (ou Push, extraction, extraction, validation, fusion), l'interface utilisateur fonctionne parfaitement.

Existe-t-il un guide de démarrage détaillé pour Git indiquant que Git est utilisé avec VS 2013? MS a une vidéo sur l'intégration d'un référentiel Git existant dans VS 2013, mais je cherche un point de départ avec Git et VS 2013?

Commencer par Git est disponible à plusieurs endroits ... Voici quelques options:

Autres bonnes lectures:

Et quelques outils à installer:

112
jessehouwing

Pour clarifier une terminologie mixte déroutante fréquemment utilisée avec TFS

Team Foundation Server (TFS) est un outil de gestion du cycle de vie des applications qui inclut une source système de contrôle de version (VCS) composant.

Le composant VCS que TFS utilise est principalement Team Foundation Contrôle de version (TFVC)

Donc, la question serait TFVC vs Git

(En fait, TFS supporte Git comme une option VCS.)

La question est donc: TFVC vs Git

jessehouwing a une excellente réponse qui couvre cela en détail, donc s'il vous plaît référence que

Pour ce qui est de choisir lequel utiliser, à mon avis Git gagne

  1. Il est léger: simple à installer et à utiliser.
  2. Sa nature distribuée signifie qu'il est très résistant aux catastrophes, quelqu'un aura toujours une copie du repo.
  3. Le travail hors connexion est simple, vous travaillez avec votre propre référentiel complet. Vous pouvez valider des modifications, revenir en arrière, parcourir l'historique, etc. Vous devez uniquement être en ligne pour synchroniser avec un référentiel distant.
  4. Dans TFS, il n'existe pas de moyen simple de sauvegarder l'état de vos modifications (ajouts, modifications, suppressions de fichiers) et de passer à un autre état de code. (Par exemple, pour travailler sur deux fonctionnalités et basculer d'avant en arrière). Dans git, il vous suffit de commander une autre branche.
14
James Wierzba

C’est le seul inconvénient de Git sur l’interface en ligne de commande (certains diront que ce n’est pas un inconvénient ;-P).

Si l'interface de ligne de commande vous met mal à l'aise, plusieurs interfaces graphiques sont disponibles pour Git. Git lui-même contient en réalité un outil d'interface graphique de navigateur de référentiel appelé gitk et git-gui - une interface graphique pour git. Ensuite, il existe des applications tierces telles que git-cola , TortoiseGit et autres .

4
kralyk