Lors de l'utilisation de Subversion, les développeurs doivent-ils travailler à partir du coffre ou le coffre ne doit-il être utilisé que pour les fusions de chaque branche de développeur et surveillé par un service d'intégration continue?
Réponses
Trop de publicités?Dépend de l'étendue des changements. Une bonne pratique est que le tronc doit toujours être compilable, mais cela ne veut pas nécessairement dire que les développeurs ne peuvent pas travailler sur le tronc pour de petites modifications/corrections de bugs - après tout, c'est une des raisons pour avoir une copie de travail; vous pouvez assurez-vous que quelque chose compile avant de la commettre.
Les grands changements ou ajouts de fonctionnalités devrait presque toujours être retiré en branche jusqu'à ce qu'ils soient prêts pour l'intégration afin de ne pas interférer avec le développement d'autres.
Il y a un certain nombre de méthodes pour travailler avec les systèmes de contrôle de version pour le développement en parallèle. Il n'y a rien de mal avec celui qui vous suggérons ci-dessus - mais il y a des avantages et des inconvénients attachés à chaque. J'ai travaillé dans les deux sens.
Développement hors du tronc et de la coupe de dégagement des branches est très bien, mais si vous avez besoin d'effectuer une urgence de version de production, vous finissez par avoir à patcher la version de la branche et de la diffuser à nouveau - construction d'une succursale dans votre système CI.
De travail dans les branches et en préservant le tronc principal (contrôle avec un système d'intégration continue) est aussi très bien, mais peut conduire à des problèmes de conflit avec les développeurs dans plusieurs branches d'apporter des modifications.
Jetez un oeil sur le site suivant aussi:
http://www.cmcrossroads.com/bradapp/acme/branching/
Il traite d'un certain nombre de modèles de ramification pour le développement en parallèle, y compris:
- S1. Mainline
- S2. En Parallèle De Maintenance/Développement
- S3. Le Chevauchement Des Rejets
- S4. Accueil Ligne
- S5. Mise En Scène De L'Intégration Des Lignes
- S6. Modifier La Propagation Des Files D'Attente
- S7. Troisième Partie D.
- S8. À L'Intérieur/À L'Extérieur Des Lignes
Je pense que cela dépend vraiment de l'ampleur de votre opération. Jusqu'à peut-être 5 à 10 développeurs qui s'engagent dans le tronc devraient vraiment être en ordre. Mais bien sûr, chacun doit garder à l’esprit que le coffre doit toujours être compilable. S'ils travaillent sur des modifications majeures qui ne seront pas compilées pendant un certain temps, ils devraient passer à une branche.
Lors de l'utilisation de Subversion, il est pratique courante pour tout le monde à travailler hors du tronc. Si un développeur travaille sur un grand ou "expérimental", il peut être judicieux de créer une branche distincte pour ce travail, qui peuvent être fusionnés dans le tronc plus tard.
Bien que la méthode que vous décrivez, avec chaque développeur ayant leur propre branche, est plus proche de Git que de la Subversion. Si c'est la manière que vous préférez utiliser, je le recommande fortement l'utilisation de Git à la place.
Avec Git, il n'est pas nécessaire d'utiliser une sorte de serveur d'intégration continue à regarder les branches distinctes. Au lieu de cela, chaque développeur a sa propre branche, ils peuvent tout simplement se réinsèrent dans la branche principale quand ils le veulent.