Biorąc pod uwagę skrót git commit, jak dowiedzieć się, które wydanie jądra go zawiera?

24

Załóżmy, że mam problem, który został naprawiony przez najnowszą łatkę do oficjalnego repozytorium git dla systemu Linux. Mam do obejrzenia, ale chciałbym go cofnąć, gdy nastąpi wydanie zawierające moją poprawkę. Znam dokładny skrót git commit, np . F3a1ef9cee4812e2d08c855eb373f0d83433e34c .

Jak najłatwiej odpowiedzieć na pytanie: Jakie wydania jądra zawierają tę łatkę? Punkty bonusowe, jeśli nie jest potrzebne lokalne repozytorium git dla systemu Linux.

( LWM omawia kilka pomysłów, ale wymagają one lokalnego repozytorium).

Joachim Breitner
źródło

Odpowiedzi:

21

Jak wspomniano na LWN , najłatwiej jest:

git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c

Jeśli nie chcesz lokalnego klonowania, zatwierdzony przez „gitweb” formatowanie „zwykłe” zawiera te same informacje w X-Git-Tagnagłówku. Niestety kernel.org przeszedł na cgit, który najwyraźniej nie ujawnia tych informacji. Wcześniej było to możliwe:

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

Tutaj X-Git-Tagw tej chwili brakuje, ponieważ tego zatwierdzenia nie ma w oznaczonym wydaniu w tym repozytorium. Ale możesz spojrzeć na wcześniejsze zatwierdzenie, takie jak:

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

Tutaj widzisz:

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

co mówi mi, że tag „v3.4-rc1” był pierwszym tagiem, który pojawił się po mojej łatce, więc spodziewam się, że zobaczę go w wersji v3.4.

Jim Paris
źródło
1
Nie jestem pewien, czy ta odpowiedź jest poprawna. X-Git-Tag nie pojawia się.
Ahmet Alp Balkan,
Pierwsze zdanie jest nadal aktualne. Znalezienie odpowiedzi za pomocą gitweb nie jest już opcją, ale właśnie dlatego to pytanie zostało zredagowane prawie 3 lata temu, aby to powiedzieć.
Jim Paris,
1

Możesz użyć czegoś takiego

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

Wymaga to lokalnego repozytorium git.

ataraksja
źródło
-1

Możesz zobaczyć zatwierdzenie na lusterku źródłowym github. Przypuszczam, że możesz skorelować tagi wydania z datą zatwierdzenia (w tym przypadku twoje zatwierdzenie ma pięć dni, ostatnie oznaczone RC masterjest siedem), ale szczerze mówiąc, łatwiej jest to uzyskać, jeśli sklonujesz źródło lokalnie.

Krzysztof
źródło
Skorelowanie daty nie zadziała, ponieważ łatka może nie zostać jeszcze scalona z żadną wersją lub mogła zostać napisana pierwotnie dla poprzedniej wersji i dopiero niedawno zostać scalona.
psusi
1
Obecnie GitHub pokazuje wszystkie tagi zawierające określone zatwierdzenie tuż pod komunikatem zatwierdzenia, więc nie trzeba już korelować według daty.
Philipp Wendler,