Français ▾ Topics ▾ Latest version ▾ git-patch-id last updated in 2.54.0

NOM

git-patch-id - Calcule des IDs uniques pour des rustines

SYNOPSIS

git patch-id [--stable | --unstable | --verbatim]

DESCRIPTION

Lire des rustines à partir de l’entrée standard et calculer les identifiant de rustine.

Un "ID de rustine" n’est rien d’autre qu’une empreinte SHA-1 des diffs de fichiers associés à une rustine, avec les numéros de ligne ignorés. En tant que tel, il est « raisonnablement stable », mais en même temps aussi raisonnablement unique, c’est-à-dire deux rustines qui ont le même « ID de rustine » sont presque garantis d’être la même chose.

Le principal cas d’utilisation de cette commande est de rechercher des commits en double.

Pour traiter la sortie de git diff-tree --patch, on tire avantage du fait que la rustine est préfixée par le nom d’objet du commit, et deux chaînes de 40 octets, de caractères hexadécimaux sont générées. La première chaîne est l’ID de rustine, tandis que la seconde est l’ID de commit. Cela peut être utilisé pour établir une correspondance entre ID de rustine et ID de commit pour un ensemble ou une plage de commits.

OPTIONS

--verbatim

Calculer l’ID de rustine de l’entrée standard telle qu’elle est fournie, sans retirer les espaces blancs. Implique --stable et interdit --unstable.

C’est le comportement par défaut si patchid.verbatim est true.

--stable

Utiliser une somme "stable" de hachages comme ID de rustine. Avec cette option :

  • Réordonner les fichiers diffs qui composent une rustine n’affecte pas l’ID. En particulier, deux rustines produites en comparant les mêmes deux arbres avec deux réglages différents pour -O<order-de-fichier> résultent en la même signature d’identification de le rustine, permettant ainsi au résultat calculé d’être utilisé comme clé pour indexer quelques méta-information sur les modifications entre les deux arbres.

  • Le résultat est différent de la valeur produite par Git 1.9 et antérieur, ou produite quand une fonction d’empreint "instable" (voir --unstable ci-dessous) est utilisée - même sur la sortie d’un diff pris sans utiliser -O<ordre-de-fichier>, rendant ainsi inutilisables les bases de données existantes qui stockent de tels IDs de rustine historiques ou instables.

  • Tous les espaces blancs dans la rustine sont ignorés et n’affectent pas l’ID.

C’est le comportement par défaut si patchid.stable est fixé à true.

--unstable

Use an "unstable" hash as the patch ID. With this option, the result produced is compatible with the patch ID value produced by Git 1.9 and older and whitespace is ignored. Users with pre-existing databases storing patch IDs produced by Git 1.9 and older (who do not deal with reordered patches) may want to use this option.

C’est l’option par défaut.

EXEMPLES

git-cherry[1] shows what commits from a branch have patch ID equivalent commits in some upstream branch. But it only tells you whether such a commit exists or not. What if you wanted to know the relevant commits in the upstream? We can use this command to make a mapping between your branch and the upstream branch:

#!/bin/sh

upstream="$1"
branch="$2"
test -z "$branch" && branch=HEAD
limit="$3"
if test -n "$limit"
then
    tail_opts="$limit".."$upstream"
else
    since=$(git log --format=%aI "$upstream".."$branch" | tail -1)
    tail_opts=--since="$since"' '"$upstream"
fi
for_branch=$(mktemp)
for_upstream=$(mktemp)

git rev-list --no-merges "$upstream".."$branch" |
    git diff-tree --patch --stdin |
    git patch-id  --stable | sort >"$for_branch"
git rev-list --no-merges $tail_opts |
    git diff-tree --patch --stdin |
    git patch-id  --stable | sort >"$for_upstream"
join -a1 "$for_branch" "$for_upstream" | cut -d' ' -f2,3
rm "$for_branch"
rm "$for_upstream"

Now the first column shows the commit from your branch and the second column shows the patch ID equivalent commit, if it exists.

VOIR AUSSI

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 .