web-dev-qa-db-ja.com

git commit hashが与えられた場合、どのカーネルリリースに含まれているのかを知る方法は?

公式のLinux gitリポジトリへの最近のパッチで修正された問題があると仮定します。回避策はありますが、自分の修正を含むリリースが発生したときに元に戻したいのですが。私は正確なgit commit hashを知っています。 f3a1ef9cee4812e2d08c855eb373f0d83433e34c

質問に答える最も簡単な方法は何ですか?これまでのところ、どのカーネルリリースにこのパッチが含まれていますか?ローカルのLinux gitリポジトリが必要ない場合のボーナスポイント。

[〜#〜] lwm [〜#〜] はいくつかのアイデアについて説明していますが、これらにはローカルリポジトリが必要です。)

25

GitHubカーネルリポジトリ では、すべてのタグ/カーネルバージョンを確認できます。

dc0827c128c0ee5a58b822b99d662b59f4b8e97 の例== Jim Paris による提供:

Commit dc0827c@GitHub

3つのドットをクリックすると、タグ/カーネルバージョンの完全なリストが表示されます。

7
petee

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=dc0827c128c0ee5a58b822b99d662b59f4b8e97

ここに、あなたは見ます:

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

これは、タグ「v3.4-rc1」がパッチに続く最初のタグであることを示しているため、v3.4で表示されることを期待しています。

21
Jim Paris

古い質問ですが、答えが含まれていないことに驚きました:

git tag --contains <Commit ID>

Gitタグのヘルプメッセージから:

Tag listing options
     --contains <commit>   print only tags that contain the commit

これにはローカルGITリポジトリが必要です。

この質問は私が解決策を探したときに最初に得た結果だったので、これは他の人に役立つと思います。

1
Tgilgul

あなたはこのようなものを使うことができます

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

これにはローカルgitリポジトリが必要です。

1
ataraxic

githubソースミラーでコミットを確認できます。リリースタグを関連付けることができると思います コミット日まで(この場合、コミットは5日前で、masterの最新のタグ付きRCは7です)、しかし、率直に言って、ソースのクローンを作成する方が簡単です。ローカル。

0
Christopher