Après avoir lu que je suis un geek de Subversion, pourquoi devrais-je considérer ou non Mercurial ou Git ou tout autre DVCS .
J'ai une question de suivi connexe. J'ai lu cette question et lu les liens et vidéos recommandés et je vois les avantages mais je ne vois pas le changement de mental global dont les gens parlent.
Notre équipe est composée de 8 à 10 développeurs qui travaillent sur une grande base de code composée de 60 projets. Nous utilisons Subversion et avons un tronc principal. Lorsqu'un développeur démarre un nouveau cas Fogbugz, il crée une branche svn, effectue le travail sur la branche et une fois terminé, il fusionne à nouveau dans le tronc. Parfois, ils peuvent rester sur la branche pendant une longue période et fusionner le tronc à la branche pour prendre les changements.
Quand j'ai regardé Linus parler de personnes créant une branche et ne plus jamais recommencer, ce n'est pas nous du tout. Nous créons probablement 50 à 100 succursales par semaine sans problème. Le plus grand défi est la fusion, mais nous y sommes également devenus très bons. J'ai tendance à fusionner par fogbugz case & checkin plutôt que par la racine entière de la branche.
Nous ne travaillons jamais à distance et nous ne faisons jamais de succursales à partir de succursales. Si vous êtes le seul à travailler dans cette section de la base de code, la fusion vers le tronc se fait en douceur. Si quelqu'un d'autre a modifié la même section de code, la fusion peut devenir compliquée et vous devrez peut-être faire une intervention chirurgicale. Les conflits sont des conflits, je ne vois pas comment un système pourrait le faire la plupart du temps, à moins qu'il ne soit assez intelligent pour comprendre le code.
Après avoir créé une branche, la vérification suivante des fichiers 60k + prend un certain temps, mais ce serait un problème avec tout système de contrôle de source que nous utiliserions.
Y a-t-il des avantages de tout DVCS que nous ne voyons pas qui nous seraient d'une grande aide?