2016-08-29 1 views
0

私は上流のカーネルコードからS4の問題を修正する良いコミットを見つけるためにbisectを使用しています。 しかし、私はこのようにないとき、私は混乱の問題を満たす:upsteamのLinuxカーネルから良いコミットを見つけるためにbisectを行う方法は?

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

それが結果を完了するために13個のステップを取るだろう。

しかし、私はbisectがv4.7タグより古いコミットを選択することに気が付いた、それは正常ですか?

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

+0

「より古い」とは、「v4.7タグの著者日付よりも古い著者日付、および/またはそのターゲットコミット」を意味しますか? – torek

答えて

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によって選択される理由の説明です。

関連する問題