git commit 해시가 주어지면 커널 릴리스에 포함 된 커널 릴리스를 찾는 방법은 무엇입니까?


24

공식 Linux git 저장소에 대한 최신 패치로 수정 된 문제가 있다고 가정합니다. 해결 방법이 있지만 수정 사항이 포함 된 릴리스가 발생하면 실행 취소하고 싶습니다. 정확한 git commit 해시를 알고 있습니다 (예 : f3a1ef9cee4812e2d08c855eb373f0d83433e34c) .

질문에 대답하는 가장 쉬운 방법은 무엇입니까? 지금까지 어떤 커널 릴리스에이 패치가 포함되어 있습니까? 로컬 Linux git 저장소가 필요하지 않은 경우 보너스 포인트.

( LWM은 몇 가지 아이디어를 설명하지만, 이러한 로컬 저장소를 필요로 않습니다.)

답변:



21

으로 LWN에 언급 , 가장 쉬운 방법은 다음과 같습니다

git describe --contains f3a1ef9cee4812e2d08c855eb373f0d83433e34c

로컬 클론을 원하지 않으면 gitweb의 "plain"형식의 commit은 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가 나타나지 않습니다.
Ahmet Alp Balkan

첫 문장은 여전히 ​​유효합니다. gitweb을 통해 답을 찾는 것은 더 이상 선택 사항이 아니지만 거의 3 년 전에이 질문이 편집되도록하는 이유입니다.
Jim Paris

1

이런 식으로 사용할 수 있습니다

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

로컬 git repo가 ​​필요합니다.


-1

github 소스 미러 에서 커밋을 볼 수 있습니다 .릴리스 태그 를 커밋 날짜까지 상관시킬 수 있다고 가정합니다 (이 경우 커밋은 5 일 이었고 가장 최근에 태그가 지정된 RC master는 7입니다). 솔직히 소스를 로컬로 복제하면 쉽게 얻을 수 있습니다.


패치가 아직 릴리스로 병합되지 않았거나 원래 이전 릴리스 용으로 작성되어 최근까지 병합되지 않았기 때문에 날짜와 상관 관계가 없습니다.
psusi

1
요즘 GitHub는 커밋 메시지 바로 아래에 특정 커밋이 포함 된 모든 태그를 표시하므로 더 이상 날짜별로 상관시킬 필요가 없습니다.
Philipp Wendler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.