Gitコミットハッシュが与えられた場合、どのカーネルリリースに含まれているかを調べる方法は?


24

公式のLinux gitリポジトリへの最近のパッチによって修正された問題があると仮定します。回避策はありますが、修正が含まれているリリースが発生したときに元に戻したいと思います。正確な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年前に編集されて、まさにそれを言っています。
ジム・パリ

1

このようなものを使用できます

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

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


-1

コミットはgithubソースミラーで確認できますリリースタグをコミット日付に関連付けることができると思います(この場合、コミットは5日前であり、最新のタグ付けされたRC masterは7 日です)。


パッチはまだどのリリースにもマージされていない可能性があるため、日付を相関させることはできません。または、以前のリリース用に作成されたもので、最近までマージされていない可能性があります
-psusi

1
現在、GitHubは、コミットメッセージのすぐ下に特定のコミットを含むすべてのタグを表示しているため、日付を関連付ける必要はありません。
フィリップウェンドラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.