Bien que j'utilise et aime le DVCS pour mes projets personnels, et que je puisse totalement voir comment cela facilite la gestion des contributions à votre projet par d'autres (par exemple, votre scénario Github typique), il semble que pour une équipe "traditionnelle", il pourrait y avoir des problèmes approche centralisée employée par des solutions comme TFS, Perforce, etc. (Par «traditionnel», j'entends une équipe de développeurs dans un bureau travaillant sur un projet que personne ne «possède», avec potentiellement tout le monde touchant le même code.)
Quelques-uns de ces problèmes que j'ai prévus par moi-même, mais veuillez apporter d'autres considérations.
Dans un système traditionnel, lorsque vous essayez de vérifier votre modification sur le serveur, si quelqu'un d'autre a précédemment consigné une modification conflictuelle, vous êtes obligé de fusionner avant de pouvoir enregistrer la vôtre. Dans le modèle DVCS, chaque développeur vérifie sa change localement et à un moment donné pousse à un autre dépôt. Ce dépôt a alors une branche de ce fichier que 2 personnes ont changé. Il semble que maintenant quelqu'un doit être chargé de faire face à cette situation. Une personne désignée dans l'équipe peut ne pas avoir une connaissance suffisante de l'intégralité de la base de code pour pouvoir gérer la fusion de tous les conflits. Alors maintenant, une étape supplémentaire a été ajoutée où quelqu'un doit approcher l'un de ces développeurs, lui dire de tirer et de faire la fusion, puis de pousser à nouveau (ou vous devez construire une infrastructure qui automatise cette tâche).
De plus, comme DVCS a tendance à rendre le travail local si pratique, il est probable que les développeurs puissent accumuler quelques modifications dans leurs dépôts locaux avant de les pousser, ce qui rend ces conflits plus courants et plus compliqués.
Évidemment, si tout le monde dans l'équipe ne travaille que sur différentes zones du code, ce n'est pas un problème. Mais je suis curieux de savoir si tout le monde travaille sur le même code. Il semble que le modèle centralisé oblige les conflits à être traités rapidement et fréquemment, minimisant ainsi la nécessité de procéder à des fusions importantes et douloureuses ou de confier à quiconque le contrôle du référentiel principal.
Donc, pour ceux d'entre vous qui utilisent un DVCS avec votre équipe dans votre bureau, comment gérez-vous de tels cas? Trouvez-vous que votre flux de travail quotidien (ou plus probablement hebdomadaire) est affecté négativement? Y a-t-il d'autres considérations à prendre en compte avant de recommander un DVCS sur mon lieu de travail?