De quel contrôle de code source ai-je besoin pour un grand projet dans une entreprise moyenne? [fermé]

10

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?

Martin Maat
la source
13
Parce que vous codez en php n'est pas une raison pour ne pas utiliser VCS.
Chris
@Chris: Si ça ne tenait qu'à moi, il y aurait un repo sur le réseau. Mais malheureusement, cette entreprise ne l'a pas du tout utilisée. Je disais simplement que je n'avais aucune expérience d'équipe avec le contrôle de

Réponses:

29

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.

EricBoersma
la source
1
C'est une réponse intelligente et non partisane - j'aime.
Murph
1
Les systèmes de contrôle de source +1 sont suffisamment complexes, tout ce que vous pouvez faire pour minimiser cela sera pour le mieux!
Dal
3
Il y a des choses que les VCS distribués font beaucoup mieux que les VCS centralisés, et vous pouvez toujours utiliser un DVCS comme un DVCS centralisé, donc pour une utilisation générale à long terme, je recommanderais Git ou Mercurial. Pour des situations comme celle-ci, tout VCS raisonnablement moderne fera l'affaire, et Subversion est probablement le plus facile à apprendre.
David Thornley
Utilisez certainement tout ce que votre équipe sait ou est à l'aise. (À moins que ce soit CVS ou RCS.) Si vous passez à quelque chose de nouveau et que tout le monde doit l'apprendre, faites le calcul: 20 personnes * 3 heures de formation * 40 $ / heure = 2400 $.
Barry Brown
Ou attendez-vous à ce qu'ils sachent comment acheter un nouveau VCS avec compétence dans les 5 minutes ...
alternative
4

Mercurial est excellent, distribué et gratuit.

Steven A. Lowe
la source
4

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.

Mark Thalman
la source
1
+1: Perforce est cher mais vous en avez pour votre argent.
Personne
3

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:

Utilisez ce que votre équipe est à l'aise.

Ayez simplement des processus et des meilleures pratiques en place et achetez à ceux qui peuvent les appliquer.

Paige Watson
la source
3

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.

Karl Bielefeldt
la source
2

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é.

Michael Shaw
la source
C'est beaucoup de référentiels pour un projet. Quel cauchemar pour la fusion.
JBRWilkinson
3
Je serais d'accord avec vous s'il fusionnait avec SubVersion ou CVS. La raison pour laquelle ces produits de contrôle de version distribués fonctionnent est qu'ils rendent la fusion simple et largement sans conflit.
Michael Shaw
2

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.

gbjbaanb
la source
2

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.

Cercerilla
la source
0

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.

aceinthehole
la source
Parlant comme quelqu'un qui a utilisé TFS depuis Eclipse. Non, c'est horrible. (je peux entrer dans les détails), je ne dirais certainement pas que c'est robuste. TFS est génial, mais l'extension Eclipse est scandaleusement mauvaise (où AnhkSVN pour Visual Studio est génial)
Lyndon White
J'ai une très, très mauvaise expérience de TFS pour de nombreuses raisons, même si je travaille dans l'environnement Microsoft et j'aime les outils .Net et Ms en général. Je ne recommanderai jamais TFS à personne.
AFract