Si nous ne travaillons qu'avec une seule branche dans Subversion, devrions-nous même nous embêter? Ne pouvons-nous pas simplement travailler sur le coffre pour accélérer les choses?
Voici comment nous développons avec Subversion:
- Il y a un coffre
- Nous faisons une nouvelle branche de développement
- Nous développons une nouvelle fonctionnalité sur cette branche
- Lorsque la fonctionnalité est terminée, elle est fusionnée dans le tronc, la branche est supprimée et une nouvelle branche de développement est créée à partir du tronc
Lorsque nous voulons sortir en production, nous créons un tag à partir du tronc. Les corrections de bugs sont faites sur une branche à partir de cette balise. Ce correctif est ensuite fusionné dans le coffre.
C'est pourquoi nous créons une nouvelle branche de développement après qu'une fonctionnalité soit terminée. De cette façon, le correctif est inclus assez tôt dans notre nouveau code.
Voici un schéma qui devrait clarifier:
Maintenant, on a l'impression que ce n'est pas la façon la plus efficace de travailler. Nous construisons localement avant de nous engager, ce qui prend environ 5 à 10 minutes. Vous pouvez comprendre que cela est vécu comme un temps d'attente assez long.
L'idée d'une branche de développement est que le tronc est toujours prêt à être publié. Mais ce n'est plus vrai dans notre situation. Parfois, une fonctionnalité est presque prête, et certains développeurs commenceront déjà à coder la fonctionnalité suivante (sinon, ils attendraient qu'un ou deux développeurs finissent et fusionnent).
Ensuite, lorsque la fonctionnalité 1 est terminée, elle est fusionnée dans le tronc, mais avec quelques validations de la fonctionnalité 2 incluses.
Alors, devrions-nous même nous soucier de la branche de développement, car nous n'avons qu'une seule branche? J'ai lu sur le développement basé sur les troncs et la branche par abstraction, mais la plupart des articles que j'ai trouvés se concentrent sur la partie branche par abstraction. J'ai l'impression que c'est pour de gros changements qui s'étaleront sur plusieurs versions. Ce n'est pas un problème que nous rencontrons.
Qu'est-ce que tu penses? Pouvons-nous simplement travailler sur le coffre? Le pire scénario est (je pense) que nous devions créer une balise à partir du tronc et choisir les commits dont nous avons besoin, car certains commits / fonctionnalités ne sont pas encore prêts pour la production.