0

アップストリームのカーネル コードから S4 の問題を修正する適切なコミットを見つけるために bisect を使用しています。しかし、私がこのようにすると、紛らわしい問題に遭遇します:

git bisect  start
git bisect bad  v4.8-rc1
git bisect good v4.7 

結果を完成させるには 13 ステップかかります。

しかし、バイセクトが v4.7 タグよりも古いコミットを選択することがわかりました。これは正常ですか?

私の意見では、bisect は、タイム ラインから判断して、v4.7 タグと v4.8-rc1 タグの間でコミットを選択する必要があります。

4

1 に答える 1

0

私の意見では、bisect は、タイム ラインから判断して、v4.7 タグと v4.8-rc1 タグの間でコミットを選択する必要があります。

これは正確には bisect が行うことではありません。bisect は、タグ v4.8-rc1 に含まれ、タグ v4.7 には含まれていないすべてのコミットを選択します。たとえば、ブランチが v4.6 から作成され、v4.7 が作成される前に変更がコミットされた場合、これは異なりますが、ブランチは v4.7 にマージされません。特にカーネル開発では、マージされる前にかなりの時間をかけてコミットされた多くの変更が存在する可能性があります。これらのコミットの日付は v4.7 より前になりますが、それらの変更は v4.7 には含まれていません。

bisect は、問題を引き起こしたコミットを見つけるために使用されるため、時間に基づいてではなく、このように動作することが重要です。これは、「良い」バージョンより前に作成されたが、まだ含まれていないコミットでも発生する可能性があります。

でコミットしている場合は、 を使用してどのタグが含まれているかを確認できますgit tag --contains <commit-hash>。タグ v4.7 はおそらくそのリストには含まれませんgit bisect

于 2016-08-29T10:20:15.800 に答える