З огляду на хеш-компіляцію git, як дізнатися, який випуск ядра містить його?


24

Припустимо, у мене є певна проблема, яка була виправлена ​​нещодавним виправленням до офіційного сховища Linux git. У мене є робота, але я хотів би скасувати її, коли відбудеться випуск, який містить моє виправлення. Я знаю точний хеш- компілятор , наприклад f3a1ef9cee4812e2d08c855eb373f0d83433e34c .

Який найпростіший спосіб відповісти на питання: Які випуски ядра поки що містять цей патч? Бонусні бали, якщо не потрібне локальне сховище Linux git.

( LWM обговорює деякі ідеї, але для цього потрібен локальний сховище.)

Відповіді:



21

Як згадано на LWN , найпростіше:

git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c

Якщо ви не хочете локального клонування, "звичайний" формат комісії gitweb містить ту ж інформацію в X-Git-Tagзаголовку. На жаль, kernel.org перейшов на cgit, який, очевидно, не розголошує цю інформацію. Раніше це можна було дізнатись так:

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

На X-Git-Tagсьогоднішній день він фактично відсутній, оскільки ця комісія не є тегованим випуском у цьому сховищі. Але ви можете ознайомитись з більш ранньою комісією, наприклад:

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

Ось, бачите:

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

який говорить мені, що тег "v3.4-rc1" був першим тегом, який слідкував за моїм виправленням, тому я очікував би побачити його в v3.4.


1
Не впевнений, чи ця відповідь є дійсною більше. X-Git-Tag не з’являється.
Ахмет Альп Балкан

Перше речення все ще діє. Пошук відповіді через gitweb - це вже не варіант, але саме це питання було відредаговано майже 3 роки тому, щоб сказати саме це.
Jim Paris

1

Ви можете використовувати щось подібне

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

Для цього потрібні місцеві git repo.


-1

Ви можете бачити комітку на дзеркалі джерела github. Я припускаю, що ви можете співвідносити теги випуску з датою фіксації (у цьому випадку ваша фіксація становить п'ять днів, останній позначений RC master- сім), але, чесно кажучи, це легше отримати, якщо клонувати джерело локально.


Співвіднесення дати не спрацює, оскільки виправлення ще не може бути об'єднано до жодного випуску, або воно, можливо, було написано спочатку для попереднього випуску та просто не об'єднане до недавнього часу.
psusi

1
В даний час GitHub показує всі теги, що містять певну фіксацію трохи нижче повідомлення про фіксацію, тому більше не потрібно співвідносити дату.
Філіп Вендлер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.