Quels sont les avantages et les inconvénients des systèmes de contrôle de révision distribués? p>
Si vous avez une expérience avec des systèmes distribués tels que git , Mercurial , SCM en plastique , etc. S'il vous plaît partagez votre expérience. Dites-nous ce qui a bien fonctionné et où les problèmes sont apparus. P>
Je suis particulièrement intéressé à entendre parler de l'utilisation de systèmes distribués dans des projets traditionnels, commerciaux, non open-source, mais des réponses sur d'autres utilisations sont également les bienvenues. P>
4 Réponses :
Je n'ai pas essayé d'autres systèmes distribués, je ne peux donc pas y faire commenter. Mais une chose qui m'énerve à propos de Git, c'est qu'il n'y a aucun moyen de cloner une partie du référentiel. Dernier j'ai vérifié, il manque également de choses similaires à SVN: externes. Je trouve que Svn Externals sont souvent utilisés au sein des entreprises pour vérifier les bibliothèques d'autres référentiels, etc. P>
Vous pouvez définir des sous-modules dans Git, ce qui vous permet de cloner uniquement le sous-module, cependant, pour que votre référentiel doit déjà avoir la structure, vous ne pouvez pas le faire lorsque vous clonez.
Il est concept de contrôle de révision distribué que vous devez disposer d'un repo complet sur votre machine locale. N'oubliez pas que une seule fois lorsque vous clonez un projet à la machine locale, vous tirez toutes les choses. Le prochain traction ne vous donnera que des changements.
lire ce
0 commentaires
Ouais, Checkout La question Stackoverflow pour cela. Si vous souhaitez plus d'informations sur la manière dont GIT se compare à d'autres systèmes de contrôle de la révision, il existe un bon site informatif pour cela: Pourquoi git est-il meilleur Que x? p>
La question Sebasgo est de pointe pour avoir vraiment beaucoup de bonnes réponses, mais laissez-moi vous raconter mon expérience personnelle de toute façon. Je travaille avec une poignée d'autres personnes dispersées partout sur les États-Unis, ce qui fait ce qui est essentiellement des travaux de consultation privés. Les clients varient en taille, mais notre équipe est petite et nous travaillons assez rapidement. Le code est commercial mais détenu par les clients lorsque nous sommes terminés. P>
Nous utilisons mercurial, mais l'outil spécifique est moins important que le flux de travail général de l'utilisation de la version de la version distribuée, par opposition à la centralisation. Dans mon expérience, il y a deux Au-delà de ces effets, qui s'appliquent à tous mes projets, liés au travail et non, une prestation spécifique à notre disposition particulier, qui concerne votre question sur l'utilisation commerciale et qui était inattendue est venue: le client peut réellement travailler sur le code. Ils peuvent prendre un instantané, faire des changements locaux et nous envoyer des corrections de retour de nous ou gardez le code modifié dans un but particulier. Ceci est d'une grande aide pour les garder impliqués, de ne pas trop éloigné de la synchronisation de ce qu'ils veulent et de leur permettre de modifier les choses sans rien ne rien briser (nous ne fusionnons pas dans leurs changements à moins qu'ils ne soient prêts - mêmes règles Nous postulons pour nous-mêmes.) P>
Nous n'avons pas beaucoup de plaintes. Il faut vous habituer, bien que le jeu de commandement de Mercurial soit suffisamment proche de la subversion (que nous avions l'habitude d'utiliser) que nous n'avions pas eu beaucoup de problèmes. Même la méchanceté occasionnelle, comme une vérification accidentelle dans les binaires ou les fichiers qui ne devraient pas être vérifiés, nous pouvons vous déplacer car nous pouvons recréer un référentiel sans ces changements et remplacer notre principal si nous en avons besoin. Cela ne s'adapte pas à un grand groupe de personnes, mais fonctionne assez bien pour une petite équipe de 3-4 personnes. P>
Le seul négatif, je peux penser que c'est en fait un problème, est un effet secondaire de pouvoir agir facilement: vous pouvez avoir assez de travail en attente que vous en avez perdue. C'est un peu ressemblant à de nombreux brouillons d'un document écrit: laissez-passer suffisamment de copies autour et vous ne vous souvenez pas de quelle copie avait les changements que vous souhaitez. Ce n'est pas directement une faille de l'outil, et si quelque chose qu'il facilite la rétablissement de la disparition de travail disparate que les outils moins capables de la fusion. Mais c'est un danger. La seule façon dont je sache de gérer, c'est être disciplinée de la rédaction de journaux de validation utiles, des descriptions de succursales utiles et de ne pas essayer de garder trop de tâches ouvertes à la fois. En d'autres termes, même un très beau workflow est toujours un flux de travail et a besoin d'attention ou est hors de main. P>
J'ai des problèmes particuliers avec Mercurial (je veux vraiment que le soutien de la branche nommé soit juste un peu em> plus facile) et avec git (je veux vraiment que la commande soit plus intuitive, même maintenant), même maintenant), Mais ce sont des plaintes concernant les problèmes de coins qui se familiarisent avec une grande connaissance. Ils ne seraient même pas possible si ces outils n'avaient pas poussé l'enveloppe de ce que je pensais qu'un VC pouvait faire de loin au-delà de ce que je savais avant de commencer les utiliser. P>
Autre négatif des systèmes de contrôle de la révision distribués (au moins ce que j'ai trouvé sur Git) est l'espace utilisé pour maintenir le repo. Par exemple, 460 Mo de source quantique Ubuntu avec 5 branches prendront 1,2 Go sur le disque dur. Même si ce n'est pas un gros problème pour les tailles de disque dur actuelles sur les machines locales, vous devez toujours tirer plus de 700 Mo à travers le réseau lorsque vous tirez pour la première fois. Juste mes 3 cents pour soutenir @Quark Réponse :)
Stackoverflow.com/search?q=Distributed+version+Control