Précédent: , Monter: Envoyer des correctifs   [Table des matières][Index]


22.10.2 Envoyer une série de correctifs

Correctifs isolés

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 sortie send-email du paquet git, c.-à-d. git:send-email.

The following command will create a patch email from the latest commit, open it in your EDITOR or VISUAL for editing, and send it to the Guix mailing list to be reviewed and merged. Assuming you have already configured Git according to Voir Configurer Git, you can simply use:

$ git send-email --annotate -1

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 --annotate --subject-prefix='PATCH core-updates' -1

The patch email contains a three-dash separator line after the commit message. You may “annotate” the patch with explanatory text by adding it under this line. If you do not wish to annotate the email, you may drop the --annotate option.

If you need to send a revised patch, don’t resend it like this or send a “fix” patch to be applied on top of the last one; instead, use git commit --amend or git rebase to modify the commit, and use the ISSUE_NUMBER@debbugs.gnu.org address and the -v flag with git send-email.

$ git commit --amend
$ git send-email --annotate -vREVISION \
      --to=ISSUE_NUMBER@debbugs.gnu.org -1

Remarque : À cause d’un bogue dans git send-email, -v RÉVISION (avec un espace) ne marchera pas. Vous devez utiliser -vRÉVISION.

Vous pouvez trouver NUMÉRO_PROBLÈME soit en cherchant sur l’interface mumi sur https://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.

Notifier les équipes

If your git checkout has been correctly configured (voir Configurer Git), the git send-email command will automatically notify the appropriate team members, based on the scope of your changes. This relies on the etc/teams.scm script, which can also be invoked manually if you do not use the preferred git send-email command to submit patches. To list the available actions of the script, you can invoke it via the etc/teams.scm help command. For more information regarding teams, voir Équipes.

Remarque : On foreign distros, you might have to use ./pre-inst-env git send-email for etc/teams.scm to work.

Plusieurs correctifs

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 -NUMBER_COMMITS -o outgoing \
      --cover-letter

Remarque : git format-patch accepts a wide range of revision range specifiers. For example, if you are working in a branch, you could select all commits in your branch starting at master.

$ git format-patch master..MY_BRANCH -o outgoing \
      --cover-letter

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 --annotate
$ rm outgoing/0000-cover-letter.patch # we don't want to resend it!

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 outgoing/*.patch --to=ISSUE_NUMBER@debbugs.gnu.org
$ rm -rf outgoing # we don't need these anymore

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 -NUMBER_COMMITS -vREVISION \
      --to=ISSUE_NUMBER@debbugs.gnu.org

If need be, you may use --cover-letter --annotate to send another cover letter, e.g. for explaining what’s changed since the last revision, and these changes are necessary.


Précédent: Configurer Git, Monter: Envoyer des correctifs   [Table des matières][Index]