J’ai présenté Git à mon équipe de dev, et tout le monde déteste sauf moi. Ils veulent remplacer par Team Foundation Server. Je sens que c’est un énorme pas en arrière, même si je ne suis pas très familier avec TFS. Peut quelqu'un avec une expérience comparer soutien ramification sur TFS à ramification de Git ? En outre, en général, quels sont les avantages et les inconvénients de TFS ? Je vais le détester après l’utilisation de Git pour quelques années ?
Réponses
Trop de publicités?Je pense que, la déclaration
tout le monde déteste sauf moi
rend toute discussion des déchets: lorsque vous gardez à l'aide de Git, ils vont blâmer vous si quelque chose va mal.
En dehors de cela, pour moi, Git a deux avantages par rapport à une centralisation de la VCS que j'apprécie le plus (comme en partie décrite par Rob Sobers):
- sauvegarde automatique de l'ensemble des pensions de: à chaque fois que quelqu'un tire de la centrale des pensions, il/elle reçoit un historique complet des changements. Quand on repo se perd: ne vous inquiétez pas, prenez l'un de ceux présents sur chaque poste de travail.
- hors pensions d'accès: quand je travaille à la maison (ou dans un avion ou train), je peux voir l'historique complet du projet, chaque unique de l'archivage, sans allumer ma connexion VPN de travail et la possibilité de travailler comme je l'ai été au travail: de l'archivage, de caisse, de la direction générale, de tout.
Mais comme je l'ai dit: je pense que vous êtes une bataille perdue: quand tout le monde déteste Git, ne pas utiliser Git. Il pourrait vous aider plus à savoir pourquoi ils détestent Git au lieu d'essayer de les convaincre.
Si ils ne veulent tout simplement pas parce que c'est nouveau pour eux et ne sont pas prêts à apprendre quelque chose de nouveau: êtes-vous sûr que vous ferez de développement réussie avec votre équipe?
N'est vraiment que chaque personne qui déteste Git ou sont-ils influencés par certains leaders d'opinion? Trouver les responsables et demandez-leur quel est le problème. Convaincre et vous allez convaincre le reste de l'équipe.
Si vous ne pouvez pas convaincre les dirigeants: oubliez l'utilisation de Git, prendre la TSF. Rendra votre vie plus facile.
La principale différence entre les deux systèmes est que TFS est une centralisé, système de contrôle de version Git est un système distribué, système de contrôle de version.
Avec TFS, les dépôts sont stockées sur un serveur central et aux développeurs d'extraire une copie de travail, qui est un instantané du code à un point spécifique dans le temps. Avec Git, les développeurs de cloner l' intégralité du dépôt de leurs machines, y compris l'ensemble de l'histoire.
L'un des avantages d'avoir la totalité du dépôt sur votre développeur de machines, c'est de la redondance dans le cas où le serveur meurt. Un autre bon avantage est que vous pouvez déplacer votre copie de travail en arrière-et-vient entre les révisions, sans jamais parler du serveur, ce qui peut être utile si le serveur est en panne ou tout simplement inaccessible.
Pour moi, la vraie aubaine, c'est que vous pouvez commettre des modifications à votre dépôt local sans jamais parler au serveur ou à infliger potentiellement instables, des changements dans votre équipe (c'est à dire, la rupture de la construction).
Par exemple, si je travaille sur une grande fonctionnalité, il pourrait me prendre une semaine de code et de le tester complètement. Je ne veux pas de check-in instable code en milieu de semaine, et de briser le construire, mais qu'advient-il si je suis presque à la fin de la semaine et j'ai accidentellement bork toute ma copie de travail? Si je n'ai pas fait de commettre tout le long je me tiens le risque de perdre mon travail. Ce n'est pas efficace de contrôle de version, et TFS est sensible à cela.
Avec DVCS, je peux engager en permanence sans avoir à vous soucier de la construction, parce que je suis commettre mes modifications localement. Dans TFS et autres systèmes centralisés il n'y a pas de concept d'un local d'enregistrement.
Je n'ai même pas allé dans la façon dont beaucoup mieux branchement et de fusion est dans DVCS, mais vous pouvez trouver des tonnes d'explications ici sur ou par l'intermédiaire de Google. Je peux vous dire par expérience que le branchement et la fusion dans TFS n'est pas bon.
Si l'argument de la TSF dans votre organisation, c'est qu'il fonctionne mieux sur Windows que Git, je vous suggère de Mercurial, qui fonctionne très bien sur Windows, il y a l'intégration avec l'Explorateur Windows (TortoiseHg) et Visual Studio (VisualHg).
Les gens ont besoin de mettre l'arme à feu, pas loin de la corniche, et pense que pour une minute. Il s'avère objectif, concret et avantages indéniables DVCS qui fera une ÉNORME différence dans une équipe de la productivité.
Il s'agit pour le branchement et la Fusion.
Avant de DVCS, le principe directeur était "Priez Dieu que vous n'avez pas à entrer dans les branches et la fusion. Et si vous le faites, au moins le prie de le laisser être très, très simple."
Maintenant, avec DVCS, de branchement (et de fusion) est beaucoup amélioré, le principe est le suivant, "Faire à la baisse d'un chapeau. Il va vous donner une tonne d'avantages et de ne pas vous poser de problèmes."
Et c'est une IMMENSE productivité pour toute l'équipe.
Le problème est, pour les gens de comprendre ce que je viens de dire et d'être convaincu que c'est vrai, ils ont d'abord investir dans un peu d'une courbe d'apprentissage. Ils n'ont pas à apprendre Git ou de tout autre DVCS lui-même ... ils ont juste besoin d'apprendre comment Git ne le branchement et la fusion. Lire et re-lire quelques articles et billets de blog, prendre lent, et de travailler à travers elle jusqu'à ce que vous le voyez. Qui pourrait prendre la meilleure partie de 2 ou 3 jours complets.
Mais une fois que vous verrez, vous n'aurez même pas envisager de choisir un non-DVCS. Car il y a vraiment claire, objective, des avantages concrets pour les DVCS, et les plus grandes victoires sont dans la zone de branchement et de fusion.
Origine: @Rob, TSF a quelque chose qui s'appelle "Étagères" qui répond à votre préoccupation quant à la validation du travail en cours, sans que cela n'affecte la compilation officiel. Je me rends compte que vous voyez centrale de contrôle de version comme un obstacle, mais quant à la TSF, de la vérification de votre code dans la plate-forme peut être considérée comme une force b/c, alors le serveur central a une copie de votre travail en cours dans les rares cas où votre machine locale se bloque ou s'il est perdu ou volé, ou si vous avez besoin de changer de vitesse rapidement. Mon point est que la TSF doit être correctement louange dans ce domaine. Aussi, le branchement et la fusion dans TFS2010 a été améliorée par rapport aux versions précédentes, et il n'est pas clair de quelle version vous faites allusion quand vous dites "... par expérience que le branchement et la fusion dans TFS n'est pas bon." Disclaimer: je suis un usage modéré de TFS2010.
Edit Dec-5-2011: Pour l'OP, une chose qui me dérange à propos de TFS est qu'il insiste sur la configuration de tous vos fichiers locaux "lecture uniquement" lorsque vous ne travaillez pas sur eux. Si vous voulez faire un changement, l'écoulement est que vous devez "check-out" le fichier, ce qui efface simplement l'attribut lecture seule sur le fichier, de sorte que TFS sait garder un oeil sur elle. C'est un inconvénient de flux de travail. La façon dont je préfère que cela fonctionne est que c'est juste détecte automatiquement si j'ai fait un changement et ne vous inquiétez pas/vous embêtez pas avec les attributs de fichier. De cette façon, je peux modifier le fichier dans Visual Studio, ou le bloc-notes, ou avec n'importe quel outil que j'ai s'il vous plaît. Le système de contrôle de version doit être aussi transparent que possible à cet égard. Il est une Extension de l'Explorateur Windows (TFS PowerTools) qui vous permet de travailler avec vos fichiers dans l'Explorateur Windows, mais ce n'est pas de simplifier le flux de travail très bien.
Sur le dessus de tout ce qui a été dit (
http://stackoverflow.com/a/4416666/172109
),
ce qui est correct, TSF n'est pas seulement un VCS. L'une des caractéristiques majeures que TFS fournit nativement intégré, suivi de bogues de la fonctionnalité. Les révisions sont liés à des questions et pourrait être suivis. Diverses politiques de check-ins sont pris en charge, ainsi que l'intégration avec Windows domaine, qui est ce que les gens qui dirigent des TFS ont. Étroitement intégré interface graphique avec Visual Studio est un autre point de vente, qui fait appel à de moins que la moyenne de la souris et cliquez sur le développeur et son manager.
D'où la comparaison de Git pour la TSF n'est pas une bonne question à se poser. Correct, bien que peu pratique, la question est de comparer Git avec juste VCS de la fonctionnalité de la TSF. À l', Git coups TFS hors de l'eau. Toutefois, de graves équipe a besoin d'autres outils, et c'est là que TFS fournit un arrêt de destination.