Supposons que j'ai un problème qui a été corrigé par un correctif récent au référentiel git Linux officiel. J'ai un travail autour, mais je voudrais défaire quand une libération qui contient ma solution. Je connais le hachage exact git commit, par exemple f3a1ef9cee4812e2d08c855eb373f0d83433e34c .
Quel est le moyen le plus simple de répondre à la question: Quelles versions du kernel à ce jour contiennent ce patch? Points bonus si aucun référentiel Linux git local n'est nécessaire.
( LWM discute de certaines idées, mais elles nécessitent un référentiel local.)
Comme mentionné sur LWN, le plus simple est:
git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c
Si vous ne voulez pas de clone local, la validation formatée "plain" de gitweb contient la même information dans l'en X-Git-Tag
tête X-Git-Tag
. Malheureusement, kernel.org est passé à cgit qui apparemment ne divulgue pas cette information. Auparavant, il était possible de le find comme ceci:
Ici, X-Git-Tag
est actuellement manquant car cette validation n'est pas dans une version étiquetée dans ce référentiel. Mais vous pouvez regarder un commit plus tôt, comme:
Ici, vous voyez:
X-Git-Tag: v3.4-rc1~184^2~10
qui me dit que le tag "v3.4-rc1" était le premier tag à suivre mon patch, donc je m'attendrais à le voir en v3.4.
Vous pouvez voir la validation sur le miroir source github. Je suppose que vous pouvez corréler les tags de version à la date de validation (dans ce cas, votre commit a cinq jours, le plus récent RC étiqueté sur le master
est sept), mais franchement cela est plus facile si vous clonez la source localement.
Vous pouvez utiliser quelque chose comme ça
git-show f3a1ef9cee4812e2d08c855eb373f0d83433e34c:Makefile \ | head -4 | awk -vORS='.' '{print $3}' | sed 's/\.*$//'
J'espère que cela est explicite. Bien sûr, cela nécessite repo local git.