태그 보관물: linux-kernel

linux-kernel

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

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

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

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



답변

에서 GitHub의 커널 저장소 , 당신은 모든 태그 / 커널 버전을 확인할 수 있습니다.

Jim Paris에서 제공 한 dc0827c128c0ee5a58b822b99d662b59f4b8e970의 예 :

커밋 dc0827c @ GitHub

3 점을 클릭하면 태그 / 커널 버전의 전체 목록을 볼 수 있습니다.


답변

으로 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에서 볼 것으로 예상됩니다.


답변

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

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

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


답변

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


답변