web-dev-qa-db-fra.com

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

Si vous essayez de suivre le modèle de branchement git-flow, documenté ici et avec outils ici , comment devriez-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 la version 1.0. Vous créez une branche de correctif à partir de la balise 1.0 et implémentez le correctif à cet endroit. Mais quoi alors?

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

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

76
Klas Mellbourn

Il semble qu’il existe un concept de branche "support" dans git flow. Cela est utilisé pour ajouter un correctif à une version antérieure.

Ce fil 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 solution, 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 git flow

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

... apporter des modifications alors:

git flow hotfix finish 6.0.1
56
Klas Mellbourn

Question interessante! Le flux que vous avez lié suppose que le maître peut suivre la production. Cela ne fonctionne que si les versions de production augmentent strictement. Cela est généralement vrai pour un site Web qui ne possède qu'une seule version de production.

Si vous devez gérer plusieurs versions de production, une branche pour suivre la production ne suffit pas. Une solution consiste à ne pas utiliser master pour suivre la production. Utilisez plutôt des branches telles que release1, release2, etc.

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

27
Andomar

git-flow suppose que vous ne supportez qu'une ligne de release à la fois, facilement suivie par le maître. Si vous conservez plus de 1, vous devrez alors modifier le processus git-flow pour que plusieurs suiveurs de vos versions distinctes que vous supportez (master-1, master-2). Vous pouvez continuer à utiliser master pour suivre la dernière ligne de version, en plus ou à la place d'un suivi spécifique pour la dernière ligne de version (master au lieu de master-2).

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

6
Bert F

git config --add gitflow.multi-hotfix true Cette commande semble fonctionner pour moi!

0
Laila