Dengan hasit git commit, bagaimana cara mengetahui rilis kernel mana yang berisi itu?

24

Asumsikan saya memiliki beberapa masalah yang diperbaiki oleh patch baru-baru ini ke repositori Linux git resmi. Saya memiliki pekerjaan, tetapi saya ingin membatalkannya saat rilis yang berisi perbaikan saya. Saya tahu persis git melakukan hash, misalnya f3a1ef9cee4812e2d08c855eb373f0d83433e34c .

Apa cara termudah untuk menjawab pertanyaan: Apa rilis kernel sejauh ini mengandung tambalan ini? Poin bonus jika tidak diperlukan repositori Linux git lokal.

( LWM membahas beberapa ide, tetapi ini memang membutuhkan repositori lokal.)

Joachim Breitner
sumber

Jawaban:

21

Seperti disebutkan di LWN , yang paling mudah adalah:

git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c

Jika Anda tidak ingin klon lokal, komit yang diformat "polos" gitweb berisi info yang sama di X-Git-Tagheader. Sayangnya kernel.org beralih ke cgit yang tampaknya tidak mengungkapkan informasi ini. Sebelumnya mungkin untuk mengetahuinya seperti ini:

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

Di sini, X-Git-Tagsebenarnya tidak ada saat ini karena komit tersebut tidak ada dalam rilis yang ditandai dalam repositori itu. Tetapi Anda dapat melihat komit sebelumnya, seperti:

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

Di sini, Anda lihat:

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

yang memberitahu saya bahwa tag "v3.4-rc1" adalah tag pertama yang mengikuti tambalan saya, jadi saya berharap untuk melihatnya di v3.4.

Jim Paris
sumber
1
Tidak yakin apakah jawaban ini valid lagi. X-Git-Tag tidak muncul.
Ahmet Alp Balkan
Kalimat pertama masih berlaku. Menemukan jawaban melalui gitweb bukan lagi pilihan, tapi itu sebabnya pertanyaan ini diedit hampir 3 tahun yang lalu untuk mengatakan hal itu.
Jim Paris
1

Anda dapat menggunakan sesuatu seperti ini

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

Ini membutuhkan repo git lokal.

ataraxic
sumber
-1

Anda dapat melihat komit di mirror sumber github. Saya kira Anda dapat mengkorelasikan tag rilis ke tanggal komit (dalam hal ini, komit Anda berusia lima hari, RC dengan tag yang paling baru aktif masteradalah tujuh), tetapi terus terang ini lebih mudah didapat jika Anda mengkloning sumber secara lokal.

Christopher
sumber
Mengaitkan tanggal tidak akan berfungsi karena tambalan mungkin belum digabungkan ke dalam rilis apa pun, atau mungkin telah ditulis pada awalnya untuk rilis sebelumnya dan baru saja digabung hingga saat ini.
psusi
1
Saat ini GitHub menunjukkan semua tag yang mengandung komit spesifik tepat di bawah pesan komit, jadi tidak perlu lagi berkorelasi dengan tanggal.
Philipp Wendler