Français â–Ÿ Topics â–Ÿ Latest version â–Ÿ git-interpret-trailers last updated in 2.54.0

NOM

git-interpret-trailers - Ajoute ou analyse de l’information structurĂ©e dans les messages de validation

SYNOPSIS

git interpret-trailers [--in-place] [--trim-empty]
			[(--trailer (<clĂ©>|<alias-de-clĂ©>)[(=|:)<valeur>])
​]
			[--parse] [<fichier>
​]

DESCRIPTION

Ajouter ou analyser des lignes terminales, qui ressemblent Ă  des en-tĂȘtes de courriel RFC 822, Ă  la fin de la partie autrement libre d’un message de validation. Par exemple, dans le message de validation suivant

titre

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Signed-off-by: Alice <alice@exemple.com>
Signed-off-by: Bob <bob@exemple.com>

les deux derniÚres lignes commençant par "Signed-off-by" sont des lignes terminales.

Cette commande lit des messages de validation provenant soit des <fichier>s en argument, soit de l’entrĂ©e standard, si aucun <fichier> n’est spĂ©cifiĂ©. Si --parse est spĂ©cifiĂ©, la sortie se compose des lignes terminales analysĂ©es provenant de l ' entrĂ©e, sans les influencer avec des options de ligne de commande ou des variables de configuration.

Sinon, cette commande s’applique les variables de configuration`trailer.*` (qui pourraient potentiellement ajouter de nouvelles lignes terminales, ainsi que les repositionner), ainsi que tous les arguments de ligne de commande qui peuvent remplacer les variables de configuration (comme --trailer=... qui pourraient Ă©galement ajouter de nouvelles lignes terminales), Ă  chaque fichier d’entrĂ©e. Le rĂ©sultat est Ă©mis sur la sortie standard.

Cette commande peut Ă©galement fonctionner sur la sortie de git-format-patch[1], qui est plus Ă©laborĂ© qu’un simple message de validation. Plus prĂ©cisĂ©ment, cette sortie comprend un message de validation (comme ci-dessus), une ligne de sĂ©paration "---" et une rustine. Pour ces entrĂ©es, le sĂ©parateur et les rustines ne sont pas modifiĂ©s par cette commande et sont Ă©mis tel quels sur la sortie, Ă  moins que --no-divider soit spĂ©cifiĂ©.

Certaines variables de configuration contrĂŽlent la façon dont les arguments --trailer sont appliquĂ©s Ă  chaque entrĂ©e et la façon dont toute ligne terminale existante dans l’entrĂ©e est changĂ©e. Elles permettent Ă©galement d’ajouter automatiquement des lignes terminales.

Par dĂ©faut, l’argument <clĂ©>=<valeur> or <clĂ©>:<valeur> fourni en utilisant --trailer ne sera ajoutĂ© aprĂšs les lignes terminales existantes que si la derniĂšre ligne terminale a une paire (<clĂ©>, <valeur>) diffĂ©rente (ou s’il n’y a pas de ligne terminale). Les parties <clĂ©> et <valeur> seront raccourcis pour supprimer les espaces blancs de dĂ©but et de fin, et les <clĂ©> et <valeur> nettoyĂ©s rĂ©sultants seront apposĂ©s dans la sortie comme ceci :

clé:valeur

Cela signifie que les <clĂ©> et <valeur> nettoyĂ©s seront sĂ©parĂ©s par : (deux points suivis d’un espace).

Pour plus de commoditĂ©, on peut configurer un <alias-de-clĂ©> afin d’utiliser un --trailer plus court Ă  taper sur la ligne de commande. Cela peut ĂȘtre configurĂ© Ă  l’aide de la variable de configuration trailer.<alias-de-clĂ©>.key. L'<alias-de-clĂ©> doit ĂȘtre un prĂ©fixe de la chaĂźne complĂšte <clĂ©>, bien que la sensibilitĂ© Ă  la casse n’a pas d’importance. Par exemple, si vous avez

trailer.sign.key "Signed-off-by: "

dans votre configuration, vous devez seulement spécifier --trailer="sign: foo" sur la ligne de commande au lieu de --trailer="Signed-off-by: foo".

Par dĂ©faut, la nouvelle ligne terminale apparaĂźtra aprĂšs toutes les lignes terminales existantes. S’il n’y a pas de ligne terminale existante, la nouvelle ligne terminale apparaĂźtra Ă  la fin de l’entrĂ©e. S’il n’y a pas dĂ©jĂ  de ligne avec seulement des espaces Ă  la fin, une ligne vierge sera ajoutĂ©e avant la nouvelle ligne terminale.

Les lignes terminales existantes sont extraites de l’entrĂ©e en recherchant un groupe d’une ou plusieurs lignes qui (i) n’est constituĂ© que de lignes terminales, ou (ii) contient au moins une ligne terminale gĂ©nĂ©rĂ©e par Git ou pour par la configuration utilisateur et se compose d’au moins 25% de lignes terminales. Le groupe doit ĂȘtre prĂ©cĂ©dĂ© d’une ou de plusieurs lignes vides (ou espace seulement). Le groupe doit soit ĂȘtre Ă  la fin de l’entrĂ©e, soit ĂȘtre les derniĂšres lignes non blanches avant une ligne qui commence par --- (suivi par un espace ou la fin de la ligne).

Lors de la lecture des lignes terminales, il ne doit pas y avoir d’espace blanc avant ou Ă  l’intĂ©rieur du <clĂ©>, mais les caractĂšres d’espace normaux ou de tabulations sont autorisĂ©s entre la <clĂ©> et le sĂ©parateur. Il peut y avoir des espaces blancs avant, Ă  l’intĂ©rieur ou aprĂšs la <valeur.> La <valeur> peut ĂȘtre divisĂ©e sur plusieurs lignes avec chaque ligne subsĂ©quente commençant par au moins un espace blanc, comme le "folding" dans RFC 822. Exemple :

clé: C'est une trÚs longue ligne, avec des espaces et
  des retours chariots.

Notez que les lignes terminales ne suivent pas (et ne sont pas destinĂ©es Ă  suivre) de nombreuses rĂšgles pour les en-tĂȘtes RFC 822. Par exemple, elles ne suivent pas les rĂšgles d’encodage.

OPTIONS

--in-place

Éditer les fichiers sur place.

--trim-empty

Si la partie <valeur> d’une ligne terminale ne contient que des espaces blancs, la totalitĂ© de la ligne terminale est Ă©liminĂ©e de la sortie rĂ©sultante. Ceci s’applique aux lignes terminales prĂ©-existantes ainsi qu’aux nouvelles lignes terminales.

--trailer <clé>[(=| :)<valeur>]

SpĂ©cifier une paire (<clĂ©>, <valeur> ) qui devrait ĂȘtre appliquĂ©e comme ligne terminale Ă  l’entrĂ©e. Voir la description de cette commande.

--where <placement>
--no-where

PrĂ©ciser oĂč toutes les nouvelles lignes terminales seront ajoutĂ©es. Un paramĂštre fourni avec --where a prĂ©cĂ©dence sur la variable de configuration trailer.where et toute autre trailer.<alias-de-clĂ©>.where et s’applique Ă  toutes les options --trailer jusqu’à la prochaine occurrence de --where ou --no-where. La prĂ©sence du --no-where`rĂ©initialise l'effet de toute utilisation antĂ©rieure de `--where, de sorte que les variables de configuration pertinentes ne sont plus outrepassĂ©es. Les placements possibles sont after, before, end ou start.

--if-exists <action>
--no-if-exists

SpĂ©cifier l’action qui sera exĂ©cutĂ©e lorsqu’il y a dĂ©jĂ  au moins une ligne terminale avec la mĂȘme <clĂ©> dans l’entrĂ©e. Un paramĂštre fourni avec --if-exists surcharge les variables de configuration trailer.ifExistset toute autre trailer.<alias-de-clĂ©>.ifExists et s’applique Ă  toutes les options --trailer jusqu’à la prochaine occurrence de --if-exists ou --no-if-exists. L’occurrence de --no-if-exists rĂ©initialise l’effet de toute utilisation antĂ©rieure de --if-exists, de sorte que les variables de configurations pertinentes ne sont plus surchargĂ©es. Les actions possibles sont addIfDifferent, addIfDifferentNeighbor, add, replace et doNothing.

--if-missing <action>
--no-if-missing

SpĂ©cifier l’action qui sera exĂ©cutĂ©e lorsqu’il n’y a pas d’autre ligne-terminale avec le mĂȘme <clĂ©> dans l’entrĂ©e. Un paramĂštre fourni avec --if-missing surcharge les variables de configuration trailer.ifMissing et toute autre trailer.<alias-de-clĂ©>.ifMissing et s’applique Ă  toutes les options --trailer jusqu’à la prochaine occurrence de --if-missing ou --no-if-missing. L’occurrence de --no-if-missing rĂ©initialise l’effet de toute utilisation antĂ©rieure de --if-missing, de sorte que les variables de configurations pertinentes ne sont plus surchargĂ©es. Les actions possibles sont doNothing ou add.

--only-trailers

Extraire seulement les lignes terminales, pas d’autres parties de l’entrĂ©e.

--only-input

Ne sortir que les lignes terminales qui existent dans l’entrĂ©e ; n’ajouter aucune depuis la ligne de commande ou en appliquant les variables de configuration`trailer.*`.

--unfold

Si une ligne terminale a une valeur qui se suit sur plusieurs lignes (aka "folded"), reformater la valeur en une seule ligne.

--parse

Un alias de commoditĂ© pour les --only-trailers --only-input --unfold . Cela rend plus facile de voir seulement les lignes terminales provenant de l’entrĂ©e sans les influer sur toutes les options de ligne de commande ou de configuration, tout en rendant la sortie compatible avec un traitement automatique e avec --unfold.

--no-divider

Ne pas traiter --- comme la fin du message de validation. Utilisez ceci lorsque vous savez que votre entrĂ©e contient simplement le message de validation lui-mĂȘme (et non un courriel ou la sortie de git format-patch).

VARIABLES DE CONFIGURATION

Tout ce qui se trouve en dessous de cette ligne dans cette section est inclus de maniĂšre sĂ©lective Ă  partir de la documentation git-config[1]. Le contenu est le mĂȘme que celui qui s’y trouve :

Warning

Missing fr/config/trailer.adoc

See original version for this content.

EXEMPLES

  • Configurer une ligne terminale signature avec une clĂ© Signed-off-by, puis ajouter deux de ces lignes terminales Ă  un fichier de message de validation :

    $ git config trailer.sign.key "Signed-off-by"
    $ cat msg.txt
    subject
    
    corps du message
    $ git interpret-trailers --trailer 'sign: Alice <alice@exemple.com>' --trailer 'sign: Bob <bob@exemple.com>' <msg.txt
    subject
    
    corps du message
    
    Signed-off-by: Alice <alice@exemple.com>
    Signed-off-by: Bob <bob@exemple.com>
  • Utilisez l’option --in-place pour modifier un fichier de message de validation en place :

    $ cat msg.txt
    subject
    
    corps du message
    
    Signed-off-by: Bob <bob@exemple.com>
    $ git interpret-trailers --trailer 'Acked-by: Alice <alice@exemple.com>' --in-place msg.txt
    $ cat msg.txt
    subject
    
    corps du message
    
    Signed-off-by: Bob <bob@exemple.com>
    Acked-by: Alice <alice@exemple.com>
  • Éxtraire le dernier commit comme une rustine, et y ajouter des lignes terminales "Cc" et "Reviewed-by' :

    $ git format-patch -1
    0001-foo.patch
    $ git interpret-trailers --trailer 'Cc: Alice <alice@exemple.com>' --trailer 'Reviewed-by: Bob <bob@exemple.com>' 0001-foo.patch >0001-bar.patch
  • Configurer une ligne terminale "sign" avec une commande pour ajouter automatiquement un "Signed-off-by :" avec les informations sur l’auteur uniquement s’il n’y a pas dĂ©jĂ  de "Signed-off-by:", et montrer comment cela fonctionne :

    $ cat msg1.txt
    subject
    
    corps du message
    $ git config trailer.sign.key "Signed-off-by: "
    $ git config trailer.sign.ifmissing add
    $ git config trailer.sign.ifexists doNothing
    $ git config trailer.sign.cmd 'echo "$(git config user.name) <$(git config user.email)>"'
    $ git interpret-trailers --trailer sign <msg1.txt
    titre
    
    corps du message
    
    Signed-off-by: Bob <bob@exemple.com>
    $ cat msg2.txt
    subject
    
    corps du message
    
    Signed-off-by: Alice <alice@exemple.com>
    $ git interpret-trailers --trailer sign <msg2.txt
    subject
    
    corps du message
    
    Signed-off-by: Alice <alice@exemple.com>
  • Configurer une ligne terminale fix avec une clĂ© qui contient un # et aucun espace aprĂšs ce caractĂšre, et montrer comment il fonctionne :

    $ git config trailer.separators ":#"
    $ git config trailer.fix.key "Fix #"
    $ echo "subject" | git interpret-trailers --trailer fix=42
    subject
    
    Fix #42
  • Configurer une ligne terminale help avec un cmd, utiliser un script glog-find-author qui recherche l’identitĂ© de l’auteur spĂ©cifiĂ© dans le journal git dans le dĂ©pĂŽt git et montrer comment cela fonctionne :

    $ cat ~/bin/glog-find-author
    #!/bin/sh
    test -n "$1" && git log --author="$1" --pretty="%an <%ae>" -1 || true
    $ cat msg.txt
    subject
    
    corps du message
    $ git config trailer.help.key "Helped-by: "
    $ git config trailer.help.ifExists "addIfDifferentNeighbor"
    $ git config trailer.help.cmd "~/bin/glog-find-author"
    $ git interpret-trailers --trailer="help:Junio" --trailer="help:Couder" <msg.txt
    titre
    
    corps du message
    
    Helped-by: Junio C Hamano <gitster@pobox.com>
    Helped-by: Christian Couder <christian.couder@gmail.com>
  • Configurer une ligne terminale ref avec un script glog-grep pour rechercher le dernier commit pertinent dans le journal git du dĂ©pĂŽt git et montrer comment cela fonctionne :

    $ cat ~/bin/glog-grep
    #!/bin/sh
    test -n "$1" && git log --grep "$1" --pretty=reference -1 || true
    $ cat msg.txt
    subject
    
    corps du message
    $ git config trailer.ref.key "Reference-to: "
    $ git config trailer.ref.ifExists "replace"
    $ git config trailer.ref.cmd "~/bin/glog-grep"
    $ git interpret-trailers --trailer="ref:Add copyright notices." <msg.txt
    titre
    
    corps du message
    
    Reference-to: 8bc9a0c769 (Add copyright notices., 2005-04-07)
  • Configurer une ligne terminale see avec une commande pour montrer le sujet d’un commit qui est liĂ©, et montrer comment cela fonctionne :

    $ cat msg.txt
    subject
    
    corps du message
    
    see: HEAD~2
    $ cat ~/bin/glog-ref
    #!/bin/sh
    git log -1 --oneline --format="%h (%s)" --abbrev-commit --abbrev=14
    $ git config trailer.see.key "See-also: "
    $ git config trailer.see.ifExists "replace"
    $ git config trailer.see.ifMissing "doNothing"
    $ git config trailer.see.cmd "glog-ref"
    $ git interpret-trailers --trailer=see <msg.txt
    subject
    
    corps du message
    
    See-also: fe3187489d69c4 (subject of related commit)
  • Configurer un modĂšle de commit avec quelques lignes terminales avec des valeurs vides (en utilisant sed pour afficher et conserver les espaces Ă  la fin des lignes terminales), puis configurer un crochet commit-msg qui utilise git interpret-trailers pour supprimer les lignes terminales avec des valeurs vides et pour ajouter une ligne terminale git-version :

    $ cat temp.txt
    ***subject***
    
    ***message***
    
    Fixes: Z
    Cc: Z
    Reviewed-by: Z
    Signed-off-by: Z
    $ sed -e 's/ Z$/ /' temp.txt > commit_template.txt
    $ git config commit.template commit_template.txt
    $ cat .git/hooks/commit-msg
    #!/bin/sh
    git interpret-trailers --trim-empty --trailer "git-version: \$(git describe)" "\$1" > "\$1.new"
    mv "\$1.new" "\$1"
    $ chmod +x .git/hooks/commit-msg

GIT

Fait partie de la suite git[1]

TRADUCTION

Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .