Bir git taahhüdü verene göre, hangi çekirdek sürümünün onu içerdiğini nasıl öğrenebiliriz?


24

Resmi Linux git deposuna yakın zamanda yapılan bir yama ile giderilen bir sorunum olduğunu varsayalım. Etrafta bir işim var ama düzeltmeyi içeren bir sürüm olduğunda bunu geri almak istiyorum. Git kesin işlemenin kesin olduğunu biliyorum, örneğin f3a1ef9cee4812e2d08c855eb373f0d83433e34c .

Soruyu cevaplamanın en kolay yolu nedir: Şimdiye dek hangi çekirdek sürümleri bu yamayı içeriyor? Yerel Linux deposuna gerek yok ise bonus puan.

( LWM bazı fikirleri tartışır, ancak bunlar yerel bir depo gerektirir.)

Yanıtlar:



21

LWN'de belirtildiği gibi , en kolay olanı:

git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c

Yerel bir klon istemiyorsanız, gitweb'in "düz" biçimlendirilmiş taahhüdü X-Git-Tagbaşlıkta aynı bilgileri içerir . Ne yazık ki kernel.org, bu bilgiyi ifşa etmediği anlaşılan cgit'e geçti. Önceden bunu bulmak mümkündü:

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

Burada, X-Git-Tagşu anda aslında eksik, çünkü bu taahhüt bu depodaki etiketli sürümde değil. Ancak, daha önceki bir göreve bakabilirsiniz:

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

İşte, görüyorsunuz:

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

Bu da bana "v3.4-rc1" etiketinin yamamı takip eden ilk etiket olduğunu söyledi, bu yüzden v3.4'te görmeyi beklerdim.


1
Bu sorunun cevabının artık geçerli olup olmadığından emin değilim. X-Git-Tag görünmüyor.
Ahmet Alp Balkan,

İlk cümle hala geçerlidir. Yanıtı gitweb üzerinden bulmak artık bir seçenek değil, ancak bu soruyu neredeyse 3 yıl önce tam da söylemek için düzenlendi.
Jim Paris

1

Böyle bir şey kullanabilirsiniz

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

Bu yerel git repo gerektirir.


-1

Github kaynak aynadaki kararlılığı görebilirsiniz . Sanırım yayın etiketlerini teslim tarihi ile sınırlandırabilirsin (bu durumda, taahhüdün beş gün, en son etiketli RC açık masteryedi), ama açıkçası bu kaynağı yerel olarak klonlarsan daha kolay olur.


Düzeltme eki henüz herhangi bir sürümle birleştirilemediğinden veya önceki bir sürüm için orjinal olarak yazıldığından ve yakın zamana kadar birleştirilemediğinden tarih ilişkilendirilemez.
psusi

1
Bugünlerde GitHub, taahhüt mesajının hemen altında belirli bir taahhüt içeren tüm etiketleri gösterir, bu nedenle artık tarihe göre korelasyona gerek yoktur.
Philipp Wendler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.