MySQLのソースを見てBugFix詳細を確認する
MySQLのBugFix情報少な過ぎないか…詳細な更新情報を確認する方法のメモ。
概略
なぜ確認したいのか
MySQLをバージョンアップしたらアプリの挙動が変わった。
どこがどう変わったか詳細を確認しようぜ!って意図。
調査に至った経緯
- MySQLバージョンアップしたらAPの挙動が変わる。
- ReleaseNotesでそれっぽいものはあるけど、書いてある文章だと挙動の変化が素直に一致しない。
- バグやFixの詳細情報が欲しいので、安易に
MySQL バグID
でググる。 - とにかく詳細情報が出てこない。MySQL BugsでID検索しても見つからない。
なんだこれは…見つからないとはどういうことだ。
No such bug #xxxxxxx or bug is referenced in the Oracle bug system.
自分がやった確認方法
Gitからソースをインポート
筆者は今日日でGit初心者というやばさ。こちらを参考にしながらEclipseへインポートしてみる。
- Eclipseを起動。
ファイル(F)
→インポート(I)
→Git
→Gitからプロジェクト
→URIの複製
。URI(I)
にgit://github.com/mysql/mysql-server
と入力する。他のところも勝手に埋まるので次へ。- ブランチの選択画面が出るので適切に選択。今回は5.5で調べたかったのでここだけチェック残して次へ。
- ローカル保管場所の選択。とりあえず自分はデフォのままで問題なし。そのまま次へ。
オブジェクトの受信中
と出るのでちょっと待機。この間に裏ではgithubから色々落としてるわけか。- 受信が終わったら
一般的なプロジェクトとしてインポート(G)
*1を選択して次へ。 - プロジェクト名を決めて完了。今回はデフォルトのまま
mysql-server
で。
これでgit clone
(のはず)したMySQLのソースコードがEclipse上で操作できるようになった。有名どころのOSSリポジトリがこんな感じで覗けるのか。この手軽さはいいなとか考えながら作業継続。
コミット履歴から更新内容を確認
さて、本題の差分確認。
GitのコミットログからBugFixに関連するものを確認してみる。
パッケージ・エクスプローラー
から右クリックメニューを開く。チーム(E)
→ヒストリーに表示(O)
- コミットログが出るので
検索ツールバーを表示
をクリック。 - 検索ツールバーへおもむろにバグIDを入力。
さあどうだ…ちゃんと出た。よかった。
ソースの差分は当然見られるとして、コミットコメントにご丁寧にIssueに対するSolutionまで書いてあるじゃないか。*2
ということでMySQLバグの詳細が確認したければ、公開リポジトリのコミット履歴を追えばなんとかなるとわかりました。
余談
だいぶ前にEGit使ったときは、ヒストリーの表示が崩れて見れたもんじゃなかった。今回どうかと思ってたけどきれいに表示してくれて文句なし。
調べるとそれっぽいバグレポートもあるようなので、修正されてたぽい。
そもそも調査方法は正しかったのか
まあリポジトリ公開してるなら、どんな変更が入ったかわかるのはある意味当然。(開発側がまともなGit運用してるのが前提)
他の確認方法がなかったのか気になるところ。自分の検索能力が低かっただけで、もっと単純な方法があるなんてオチでなければ良いのだけれど。