Dado um hash de commit git, como descobrir qual release do kernel contém?

21

Suponha que eu tenha algum problema que foi corrigido por um patch recente no repositório oficial do Linux git. Eu tenho um trabalho por aí, mas eu gostaria de desfazer isso quando acontecer uma liberação que contenha minha correção. Eu sei exatamente o hash de commit do git, por exemplo f3a1ef9cee4812e2d08c855eb373f0d83433e34c .

Qual é a maneira mais fácil de responder à pergunta: Quais versões do kernel contêm esse patch? Pontos de bônus se nenhum repositório git Linux local for necessário.

( LWM discute algumas idéias, mas elas requerem um repositório local.)

    
por Joachim Breitner 09.08.2012 / 09:41

4 respostas

19

Como mencionado no LWN, o mais fácil é:

git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c

Se você não quiser um clone local, a confirmação formatada "simples" do gitweb contém as mesmas informações no cabeçalho X-Git-Tag . Infelizmente o kernel.org mudou para o cgit que aparentemente não divulga esta informação. Anteriormente era possível descobrir isso assim:

link

Aqui, X-Git-Tag está realmente ausente no momento porque esse commit não está em uma versão marcada nesse repositório. Mas você pode olhar para um commit anterior, como:

link

Aqui, você vê:

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

que me diz que a tag "v3.4-rc1" foi a primeira tag a seguir o meu patch, então eu esperaria vê-lo na v3.4.

    
por 09.08.2012 / 18:34
4

No repositório do kernel do GitHub , você pode verificar todas as versões de tags / kernel.

Exemplo para dc0827c128c0ee5a58b822b99d662b59f4b8e970 fornecido por Jim Paris :

Se três pontos forem clicados, a lista completa de tags / versões do kernel pode ser vista.

    
por 01.12.2017 / 14:31
1

Você pode usar algo assim

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

Espero que isso seja auto-explicativo. Claro que isso requer um repositório local.

    
por 20.11.2012 / 15:44
0

Você pode ver o commit no espelho fonte do github. Eu suponho que você poderia correlacionar o liberar tags para a data de submissão (neste caso, o seu commit tem cinco dias, o mais recente RC marcado em master é sete) , mas francamente isso é mais fácil se você clonar a fonte localmente.

    
por 09.08.2012 / 14:51