Après git-flow, comment devez-vous gérer un correctif d’une version antérieure?

Si vous essayez de suivre le modèle de twigment de git-flow, documenté ici et avec des outils , comment devez-vous gérer cette situation:

Vous avez réalisé une version 1.0 et une version 2.0. Ensuite, vous devez créer un correctif pour 1.0. Vous créez une twig de correctif à partir de la balise 1.0 et implémentez le correctif là. Mais alors quoi?

Normalement, vous fusionneriez pour maîsortingser et placer une balise de version 1.1. Mais vous ne pouvez pas fusionner 1.1 à un point après 2.0 sur le maître.

Je suppose que vous pourriez mettre la balise de libération sur la twig correctif, mais cela créerait une twig permanente à côté du maître qui contiendrait une balise de libération. Est-ce la bonne façon?

Il semble qu’il existe un concept de twig “support” dans git flow. Ceci est utilisé pour append un correctif à une version antérieure.

Ce thread a plus d’informations , avec ces exemples:

git checkout 6.0 git checkout -b support/6.x git checkout -b hotfix/6.0.1 

… faites votre correction, alors:

 git checkout support/6.x git merge hotfix/6.0.1 git branch -d hotfix/6.0.1 git tag 6.0.1 

ou en utilisant les commandes de git flow

 git flow support start 6.x 6.0 git flow hotfix start 6.0.1 support/6.x 

… changez alors:

 git flow hotfix finish 6.0.1 

Question interessante! Le stream que vous avez lié suppose que Master peut suivre la production. Cela ne fonctionne que si les versions de production augmentent ssortingctement. C’est généralement le cas pour un site Web qui n’a qu’une seule version de production.

Si vous devez gérer plusieurs versions de production, une seule twig pour suivre la production ne suffit pas. Une solution consiste à ne pas utiliser master pour suivre la production. Au lieu de cela, utilisez des twigs comme release1 , release2 , etc.

Dans cette approche, vous n’avez peut-être même pas besoin d’une twig de correctif. Vous pouvez résoudre le problème sur la twig release1 . Lorsque le correctif est suffisant, créez une balise release1.1 sur la twig release1 .

git-flow suppose que vous ne supportez qu’une seule ligne de publication à la fois, suivie de manière appropriée par le maître. Si vous maintenez plus de 1, vous devrez modifier le processus git-flow pour avoir plusieurs suiveurs de vos versions séparées que vous prenez en charge (master-1, master-2). Vous pouvez continuer à utiliser master pour suivre la ligne de version la plus récente, en plus ou à la place d’un tracker spécifique pour la dernière ligne de release (master au lieu de master-2).

Malheureusement, tous les outils de git-flow que vous utiliserez devront probablement être modifiés, mais nous espérons que vous maîsortingserez suffisamment le processus git-flow pour gérer ce cas spécifique directement avec les commandes git.