Mon entreprise utilise Git et utilise un schéma de branchement particulier - le travail est effectué en master et les branches sont réservées pour les versions. Cela fonctionne bien, tant que tout le travail effectué dans une itération arrive dans la branche, mais si un problème de production critique survient, nous devons nous assurer que le travail arrive d'une manière ou d'une autre dans les deux branches.
Dernièrement, nous nous sommes amusés avec ces branches. Cela a été un casse-tête administratif, en veillant à ce que tout le travail se retrouve dans chaque branche, et certains bogues qui ont été corrigés sur une branche ne le font pas en maître jusqu'à ce que quelqu'un le signale, ce qui est préoccupant.
Je suis tombé sur Git Flow il y a quelque temps et je pense que ce serait une solution à notre problème - le code ne percolant pas jusqu'à la sortie, ou tout le long de la descente. Le seul hic, c'est que mon responsable a déclaré que ce type de développement était un anti-modèle - se développant furieusement pendant deux semaines, puis en dépensant trois pour résoudre les conflits de fusion.
Je ne suis pas tout à fait sûr d'être d'accord, et depuis que je l'ai soulevé, le travail a repris comme d'habitude. Ce n'est que récemment que nous avons eu des problèmes majeurs avec cela.
Je voudrais savoir - pourquoi ce type de schéma de développement serait-il considéré comme un anti-modèle? Est- ce vraiment un anti-pattern?
Réponses:
Il se réfère principalement au côté des branches de fonction du modèle. Les branches de fonctionnalités ont été déclarées anti-modèle il y a longtemps lorsque les branches ont duré des mois et que les systèmes de contrôle de version n'ont pas pu fusionner pour leur sauver la vie. Les branches de fonctionnalités qui durent une semaine ou deux ont beaucoup moins de problèmes, surtout si vous fusionnez continuellement de
develop
la branche de fonctionnalités pendant cette période. Tout ce qui est beaucoup plus long que cela n'est toujours pas recommandé.Même si vous n'utilisez pas le côté branche de fonctionnalité de git flow, les autres parties sont utiles pour vous assurer d'obtenir des fusions propres et que vos modifications se propagent dans la bonne direction.
la source
La fusion est une chose drôle - moins elle est fréquente, plus elle sera difficile, plus elle sera difficile, plus les gens en auront peur, moins ils le feront.
La solution consiste à ne pas laisser les branches trop s'écarter ou à ne pas utiliser de branches.
Si les gens comprennent cela, vous n'aurez probablement pas beaucoup de problèmes avec la fusion, sinon - peut-être que les succursales ne sont pas une bonne idée sans un peu d'éducation.
la source