Étant donné un hachage de validation git, comment savoir quelle version du noyau le contient?

24

Supposons que j'ai un problème qui a été résolu par un correctif récent dans le dépôt officiel Linux git. J'ai un travail à faire, mais j'aimerais l'annuler lorsqu'une version contient mon correctif. Je connais le hachage de validation exact de git, par exemple f3a1ef9cee4812e2d08c855eb373f0d83433e34c .

Quelle est la façon la plus simple de répondre à la question: quelles versions du noyau contiennent jusqu'à présent ce correctif? Points bonus si aucun dépôt git Linux local n'est nécessaire.

( LWM discute certaines idées, mais celles-ci nécessitent un référentiel local.)

Joachim Breitner
la source

Réponses:

21

Comme mentionné sur LWN , le plus simple est:

git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c

Si vous ne voulez pas de clone local, la validation au format "ordinaire" de gitweb contient les mêmes informations dans l'en- X-Git-Tagtête. Malheureusement, kernel.org est passé à cgit qui, apparemment, ne divulgue pas ces informations. Auparavant, il était possible de le découvrir comme ceci:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff_plain;h=f3a1ef9cee4812e2d08c855eb373f0d83433e34c

Ici, il X-Git-Tagmanque actuellement car cette validation n'est pas dans une version balisée de ce référentiel. Mais vous pouvez regarder un commit antérieur, comme:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff_plain;h=dc0827c128c0ee5a58b822b99d662b59f4b8e970

Ici, vous voyez:

X-Git-Tag: v3.4-rc1~184^2~10

ce qui me dit que la balise "v3.4-rc1" a été la première balise à suivre mon patch, donc je m'attends à le voir dans la v3.4.

Jim Paris
la source
1
Je ne sais pas si cette réponse est valide. X-Git-Tag n'apparaît pas.
Ahmet Alp Balkan
La première phrase est toujours valable. Trouver la réponse via gitweb n'est plus une option, mais c'est pourquoi cette question a été éditée il y a presque 3 ans pour dire exactement cela.
Jim Paris
1

Vous pouvez utiliser quelque chose comme ça

git-show f3a1ef9cee4812e2d08c855eb373f0d83433e34c:Makefile \
         | head -4 | awk -vORS='.' '{print $3}' | sed 's/\.*$//'

Cela nécessite un dépôt git local.

ataraxique
la source
-1

Vous pouvez voir la validation sur le miroir source github. Je suppose que vous pouvez corréler les balises de publication à la date de validation (dans ce cas, votre validation date de cinq jours, la dernière balise RC activée masterest sept), mais franchement, cela est plus facile à obtenir si vous clonez la source localement.

Christophe
la source
La corrélation de la date ne fonctionnera pas car le correctif ne peut pas encore être fusionné dans une version, ou il peut avoir été écrit à l'origine pour une version précédente et n'a été fusionné que plus récemment.
psusi
1
De nos jours, GitHub affiche toutes les balises contenant un commit spécifique juste en dessous du message de commit, donc plus besoin de corréler par date.
Philipp Wendler