Suivant: Équipes, Précédent: Configurer Git, Monter: Envoyer des correctifs [Table des matières][Index]
La commande git send-email
est la meilleure manière d’envoyer
aussi bien des correctifs isolés que des séries de correctifs
(voir Plusieurs correctifs) à la liste de diffusion de Guix. Envoyer des
correctifs en pièce-jointe peut les rendre plus difficile à revoir dans
certains clients de courriel et git diff
ne stocke pas les
métadonnées des commits.
Remarque : La commande
git send-email
est fournie par la sortiesend-email
du paquetgit
, c.-à-d.git:send-email
.
La commande suivante créera un courriel de correctif à partir du dernier commit, l’ouvrira dans EDITOR ou VISUAL pour que vous puissiez le modifier et l’enverra à la liste de diffusion de Guix pour qu’il soit revu et fusionné :
$ git send-email -1 -a --base=auto --to=guix-patches@gnu.org
Astuce : Pour ajouter un préfixe à l’objet de votre correctif, vous pouvez utiliser l’option --subject-prefix. Le projet Guix utilise cela pour spécifier si un correctif est prévu pour une autre branche ou un autre dépôt que la branche
master
de https://git.savannah.gnu.org/cgit/guix.git.git send-email -1 -a --base=auto \ --subject-prefix='PATCH core-updates' \ --to=guix-patches@gnu.org
Le courriel de correctif contient une ligne de séparation à trois tirets après le message de commit. Vous pouvez « annoter » le correctif avec un texte explicatif en l’ajoutant sous cette ligne. Si vous ne voulez pas annoter le courriel, vous pouvez enlever le drapeau -a (qui est le raccourci pour --annotate).
Le drapeau --base=auto ajoute automatiquement une note à la fin du correctif indiquant le commit sur lequel il est basé, ce qui facilite le rebasage et la fusion de votre correctif pour les mainteneurs.
Si vous voulez envoyer un correctif modifié, ne le renvoyez pas de cette
manière et n’envoyez pas un correctif de « correction » à appliquer sur
l’ancien ; à la place, utilisez git commit -a
ou
git rebase
pour modifier le commit,
et utilisez l’adresse NUMÉRO_PROBLÈME@debbugs.gnu.org et le
drapeau -v avec git send-email
.
$ git commit -a $ git send-email -1 -a --base=auto -v RÉVISION \ --to=NUMÉRO_PROBLÈME@debbugs.gnu.org
Vous pouvez trouver NUMÉRO_PROBLÈME soit en cherchant sur l’interface mumi sur issues.guix.gnu.org le nom de votre correctif ou en lisant l’accusé de réception envoyé automatiquement par Debbugs en réponse aux bogues et correctifs entrants, qui contient le numéro de suivi.
Le script etc/teams.scm peut être utilisé pour notifier toutes les
personnes qui sont intéressées par votre correctif (voir Équipes). Utilisez
etc/teams.scm list-teams
pour afficher toutes les équipes, pour
décider quelles équipes votre correctif intéressera et utilisez
etc/teams.scm cc
pour afficher les drapeaux git
send-email
qui notifieront les membres des équipes appropriées ou utilisez
etc/teams.scm cc-members
pour automatiquement détecter les équipes
appropriées.
Alors que git send-email
seul suffira pour un unique correctif, un
problème malheureux de Debbugs fait que vous devrez faire plus attention
pour envoyer plusieurs correctifs : si vous les envoyez tous à l’adresse
guix-patches@gnu.org, un nouveau ticket sera créé pour chaque
correctif !
Lorsque vous envoyez une série de correctifs, il vaut mieux envoyer d’abord
un « résumé » Git pour donner un aperçu de votre série de correctifs aux
relecteur·ices. Vous pouvez créer un répertoire nommé sortant
contenant à la fois votre série de correctifs et un résumé appelé
0000-cover-letter.patch avec git format-patch
.
$ git format-patch -NOMBRE_COMMITS -o sortant \ --cover-letter --base=auto
Vous pouvez maintenant envoyer seulement le résumé à l’adresse guix-patches@gnu.org ce qui créera un ticket auquel vous pourrez envoyer le reste des correctifs.
$ git send-email outgoing/0000-cover-letter.patch -a \ --to=guix-patches@debbugs.gnu.org \ $(etc/teams.scm cc-members ...) $ rm sortant/0000-cover-letter.patch # on ne veut pas le renvoyer !
Assurez-vous de modifier le courriel pour ajouter une ligne d’objet appropriée et un petit texte avant de l’envoyer. Remarquez le journal court et les statistiques de changements générés automatiquement sous votre texte.
Une fois que le logiciel de Debbugs a répondu à votre courriel de résumé, vous pouvez envoyer les correctifs à l’adresse de suivi nouvellement créée.
$ git send-email sortant/*.patch \ --to=NUMÉRO_PROBLÈME@debbugs.gnu.org \ $(etc/teams.scm cc-members ...) $ rm -rf sortant # on n'en a plus besoin
Heureusement, cette danse avec git format-patch
n’est pas
nécessaire pour envoyer une série modifiée car un ticket existe déjà pour la
suite de correctifs.
$ git send-email -NOMBRE_COMMITS \ -vRÉVISION --base=auto \ --to NUMÉRO_PROBLÈME@debbugs.gnu.org
Si besoin, vous pouvez utiliser --cover-letter -a pour envoyer un autre résumé, p. ex. pour expliquer ce qui a changé par rapport à l’ancienne révision et que ces changements sont nécessaires.
Suivant: Équipes, Précédent: Configurer Git, Monter: Envoyer des correctifs [Table des matières][Index]