Avec git et github classiques, je peux effectuer une révision de code en créant simplement une demande d'extraction de la branche que je travaille sur la branche principale. Comment ferais-je des critiques de code avec git-flow? Avec un flux de travail tel que "finition de la fonctionnalité de flux git", je ne comprends pas vraiment où la révision du code a lieu et comment Git-flow ou git peut faciliter cette révision.
43
Réponses:
Nous sommes tombés sur ce problème précis récemment. Nous aimons vraiment git flow, car il utilise un bon niveau de sémantique (en utilisant le même niveau que celui utilisé dans la discussion en équipe: "Je vais démarrer la fonctionnalité A" plus que "je vais créer une branche, la vérifier"), tandis que git est très au niveau "implémentation" (ce qui est bon et utile aussi, mais différent).
Le problème que nous avons est
git feature finish
lié au fusionnement de la branche dans le développement, alors que nous souhaitons qu'une demande d'extraction soit envoyée et que (c'est important) fusionnée par le relecteur , et non le committer, pour mettre l'accent sur la propriété de l'équipe.Notre solution actuelle:
Ceci est conforme à notre pratique, avec l’inconvénient d’exiger la suppression de la branche nous-mêmes (car nous n’avons pas l’arrivée finale). Notre prochaine étape sera probablement de réimplémenter certaines parties de git flow (car il s’agit principalement d’enchaîner les commandes git) pour en tenir compte (avoir la partie "nettoyage" de la finition, sans la fusion).
la source
Le processus utilisé par l'équipe avec laquelle je travaille est le suivant:
git flow feature start module_1
develop
et la branche de fonctionnalitémodule_1
git flow feature finish module_1
develop
branche est poussée vers GitHub (GitHub marque automatiquement la demande d'extraction comme fermée / fusionnée lorsque cela se produit)Normalement tout ce processus est fait par l'auteur original mais ce n'est pas obligatoire. Toute personne de notre équipe peut intervenir et suivre ce processus à tout moment. Tout ce qu'ils ont à faire est de vérifier la branche de fonctionnalités et de poursuivre le processus. Ceux qui courent déjà
git flow feature finish module_1
auront le luxe de supprimer leur branche de fonctionnalité locale, mais ceux qui ont vérifié la branche doivent le faire manuellement s'ils veulent utiliser quelque chose commegit branch -D feature/module_1
.Pour les correctifs, nous utilisons une approche similaire et créons la demande d'extraction dans GitHub avant de terminer le correctif.
la source
Si vous effectuez des révisions de code, je supposerai que vous disposez d'un référentiel central contenant le code "officiel". Les développeurs tirent de et repoussent vers ce référentiel central.
Lorsque vous utilisez Gerrit , Gerrit lui-même devient le référentiel central (il possède des serveurs SSH et HTTP intégrés qui permettent aux utilisateurs d'interagir avec eux de la même manière qu'ils le sont déjà). Lorsque vous utilisez Gerrit, le flux de travail devient:
Lors de l'utilisation d'un référentiel central, les autres développeurs peuvent voir les modifications soumises après l'étape 2. Gerrit introduit le flux de travail de révision du code. Les autres développeurs ne voient donc que les modifications soumises après l'étape 5.
Cela fonctionne bien avec git-flow (ou tout autre système de branches) car Gerrit prend en charge la révision des modifications apportées à toutes les branches.
la source
Voici une autre suggestion.
la source