GIT の二分探索 (GIT BISECT)
git によって管理されるコード リポジトリでは、新しいバグが発見された場合、「git bisect」を使用してバイナリ検索を実行し、バグを引き起こしたコミットを見つけることができます。これは、特に Linux、KVM、QEMU などのオープン ソース コミュニティで最も一般的に使用される方法です。
バグが修正された場合、「git bisect」を使用してバグを修正したコミットをバイナリ検索することもできます。ただし、「git bisect」は元々、バグを修正する良い点ではなく、バグを引き起こす悪い点を見つけるために使用されるため、「git bisect」を使用してバグを修正する点を見つけると、GIT ツールから次のエラー メッセージが表示される場合があります。
[root@jay-linux qemu.git]# git bisect start # commit-4b274b160 is newer than commit-079944e6. [root@jay-linux qemu.git]# git bisect good 4b274b160 [root@jay-linux qemu.git]# git bisect bad 079944e6 Some good revs are not ancestor of the bad rev. git bisect cannot work properly in this case. Maybe you mistake good and bad revs?
この状況に遭遇した場合は、別の方法で考えることができます。「git bisect」は新しいコミットを不良としてマークし、古いコミットを良好としてマークする場合にのみ適しているため、「git bisect」で良いとみなされるポイントは次のとおりです。悪い点は悪いとマークされ、悪い点は「良い」とマークされ、最後の「最初の悪いコミット」を見つけることは、実際にはバグを修正する「最初の良いコミット」と同じです。
本当に、こういう問題はちょっと考え方を変えるだけで解決できるんです、「常識にとらわれずに考える」ことの大切さを改めて実感しました。
以下は、「git bisect」の使用法を示す例としての qemu.git です:
[root@jay-linux qemu.git]# git bisect reset Already on 'master' [root@jay-linux qemu.git]# git bisect start [root@jay-linux qemu.git]# git bisect good 079944e6 [root@jay-linux qemu.git]# git bisect bad 4b274b16 Bisecting: 55 revisions left to test after this (roughly 6 steps) [83f58e570f21c3e7227e7fbef1fc0e18b5ed7ea9] rtl8139: preserve link state across device reset [root@jay-linux qemu.git]# git bisect good Bisecting: 27 revisions left to test after this (roughly 5 steps) [4a4343671e183824a3f5db76ad561ce01e6c6e0a] usb/ehci: Move capsbase and opregbase into SysBus EHCI class [root@jay-linux qemu.git]# git bisect good Bisecting: 13 revisions left to test after this (roughly 4 steps) [507066f8a9610c0088df19ce7b3e436f43165ec1] qdev: Include qdev code into *-user, too [root@jay-linux qemu.git]# git bisect bad Bisecting: 8 revisions left to test after this (roughly 3 steps) [c3dd94b129e222e00a4ed00689e11afdd85c740f] Merge remote-tracking branch 'stefanha/net' into staging [root@jay-linux qemu.git]# git bisect good Bisecting: 4 revisions left to test after this (roughly 2 steps) [89eb147c2cfd2c797d3662aa2f55254441f0595a] uhci: stop using portio lists [root@jay-linux qemu.git]# git bisect bad Bisecting: 1 revision left to test after this (roughly 1 step) [358d615b6908b4916c74819ffad823cb4a74314e] exynos4210: Add EHCI support [root@jay-linux qemu.git]# git bisect bad Bisecting: 0 revisions left to test after this (roughly 0 steps) [aee7499a59d6778c10b018da41db4a22655ef8a8] usb/ehci: Add SysBus EHCI device for Exynos4210 [root@jay-linux qemu.git]# git bisect bad aee7499a59d6778c10b018da41db4a22655ef8a8 is the first bad commit commit aee7499a59d6778c10b018da41db4a22655ef8a8 Author: Jay <just for fun> Date: Sun Dec 16 04:49:45 2012 +0100 ### just for testing. ### :040000 040000 a9ea5da3b5b85d86701f78608405504e9a4de905 0bb166863c84186202c639aff92dd326f1021d42 M hw

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。
