Je sais que Git est idéal pour les projets open source. Mais je me demandais: pour une entreprise avec 20 programmeurs travaillant sur un projet d'un an, quel système de contrôle de source est souhaitable? D'après ce que j'ai entendu, Git utilise le tirage; ne serait-il pas moins souhaitable de devoir passer par quelqu'un d'autre pour obtenir vos modifications dans le coffre principal? Surtout quand tout le monde travaille en même temps?
C'est juste un exemple que je me posais. Je sais comment utiliser SVN mais même lors de mon dernier travail, nous ne l'avons pas utilisé sur nos projets, car tout a été fait en PHP et il s'agissait généralement de projets autonomes d'une semaine. Je venais d'avoir SVN pour mon code local et je n'avais pas besoin de l'utiliser avec d'autres.
Alors, quels sont les bons contrôles de source, et en particulier pourquoi est-ce bon pour cela?
la source
Réponses:
Utilisez ce que votre équipe est à l'aise. Tous les systèmes de contrôle de version font à peu près la même chose de manière similaire; il n'y a aucune raison de réinventer la roue car "ça pourrait mieux fonctionner". Si votre équipe n'est pas à l'aise avec quoi que ce soit, choisissez l'option qui a l'intégration la plus simple avec l'IDE standard de votre équipe.
la source
Mercurial est excellent, distribué et gratuit.
la source
Je pense que cela dépend du niveau de soutien dont vous avez besoin.
J'utilise git à la maison pour mes projets amusants lorsqu'un problème me coûte du temps, mais je peux passer du temps à apprendre ce dont j'ai besoin pour le résoudre.
Au travail, nous utilisons Perforce car il est impératif d'avoir un support technique 24h / 24 et 7j / 7. Nous avons des gens qui travaillent sur le code à New York, en Allemagne, en Irlande et au Japon tout le temps. S'il y a un problème, nous devons obtenir une réponse dès que possible. D'après mon expérience, les employés de Perforce savent vraiment ce qu'ils font et sont réceptifs aux suggestions.
la source
Bien que je pense que cette question est large et devrait être abordée par entreprise, en fonction de votre cadre informatique et de vos structures de réseau / développement, je pense que l'aspect le plus important du choix du contrôle de source / version n'est pas l'application que vous utilisez, mais son utilisation est pratiquement structurée et appliquée.
La structure et l'application de l'utilisation sont les aspects les plus importants du contrôle de version.
Planifiez à l'avance et obtenez tout le monde à bord. Imposer l'utilisation. Pas seulement avec les programmeurs, mais avec tout ce qui concerne les projets (documents, images, etc.).
SVN est une bonne application, et peut être intégré à de nombreux modules complémentaires (y compris le suivi des bogues / tâches), n'a pas besoin d'un serveur séparé et est gratuit!
Il existe également d'autres bonnes applications de contrôle de source, comme @EricBoersma l'a dit:
Ayez simplement des processus et des meilleures pratiques en place et achetez à ceux qui peuvent les appliquer.
la source
Vous avez de grandes idées fausses sur le fonctionnement de git. L'envoi d'une demande d'extraction à un contrôleur d'accès n'est qu'une façon de le faire. Il existe de nombreuses autres façons de le configurer, y compris à peu près exactement comme svn, qui est exactement le nombre de personnes qui commencent avant d'être suffisamment à l'aise pour personnaliser. Avec un DVCS comme git, vous avez suffisamment d'options pour structurer votre contrôle de source autour de votre flux de travail, plutôt que l'inverse.
la source
J'avais l'habitude de penser que le contrôle de code source n'était qu'un outil et que chacun des produits faisait plus ou moins la même chose. Et puis le point de ces systèmes de contrôle de version distribués a cliqué avec moi.
Le contrôle de version distribué vous permet d'avoir plus d'un référentiel central. Imaginez que les modifications de code migrent du référentiel de développeur local vers le référentiel de fonctionnalités, vers le référentiel de produit, vers le référentiel QA et enfin vers le référentiel publié.
Personnellement, j'utilise un produit commercial appelé Kiln, qui est basé sur Hg, mais la fonctionnalité clé est le contrôle de version distribué . Il révolutionne le flux de nouveau code du développeur vers un produit publié.
la source
Vous savez comment utiliser SVN, puis utilisez SVN - migrez uniquement vers un DVCS s'il y a quelque chose en eux dont vous avez besoin.
Ce qui est vraiment important, c'est que vous utilisiez quelque chose que vous aimerez utiliser, qui soit facile à utiliser. Martin Fowler a fait une rapide et simple enquête sur les VCS, les résultats sont très intéressants.
la source
J'ai installé git lors de mon dernier emploi où nous travaillions sur un projet de taille similaire (15 développeurs, projet de 18 mois) et cela a bien fonctionné.
La façon dont nous l'avons mis en place était:
Nous avions un serveur git qui était notre serveur git faisant autorité centralisé. Les membres de l'équipe ont été découragés de se séparer directement afin que toutes les modifications soient apportées au serveur central.
Nous avons utilisé la branche principale comme branche de production principale, avec des balises pour chaque version. Chaque module du projet était un sous-module git. Chaque sous-module avait des branches pour chaque membre de l'équipe. Un responsable (généralement l'auteur d'origine) a été affecté à chaque sous-module et il était responsable de la gestion des demandes d'extraction des autres membres de l'équipe et de l'émission des demandes d'extraction au chef d'équipe qui mettrait à jour le sous-module dans la branche principale lorsqu'il était prêt à être intégré dans la branche production. Nous avons utilisé des balises pour identifier les validations qui ont terminé une fonctionnalité spécifique ou qui correspondaient à une version.
la source
Je donnerais au moins à Team Foundation System (TFS) de Microsoft un bon aperçu. Je comprends de vos commentaires que vous n'êtes pas une boutique Microsoft. Cependant, je crois comprendre qu'il existe un plug-in Eclipse assez robuste si vous utilisez cet IDE pour le développement.
Les mécanismes de fusion et de branchement fonctionnent aussi bien que tous les autres systèmes de contrôle de source (mieux que svn, selon mon expérience, et à peu près aussi bien que forcé), mais ce qui brille vraiment, c'est les aspects de suivi de projet et de gestion de projet du produit, et l'automatisation intégrée pour les builds et les déploiements.
Si vous écrivez une application Web, jetez un œil au cadre de test automatisé de l'interface utilisateur et au cadre de test de charge que vous pouvez créer et configurer assez rapidement. Une fonctionnalité élégante: la simulation de navigateurs mobiles intégrés aux tests de charge.
la source