Monday, February 28, 2011

[x264] Revision Roll [Git]

x264のコミットメッセージに
Fix 10L in r1912

とか
Fix regression in rev1549

のようなものが出てくることがあります。こういうときに、「どういうコミットだったっけ?」と確認したくてリビジョンナンバーを頼りに遡ろうとすると、結構手間がかかるんですよね、Gitって。猫科研究所のx264チェンジログとかx264.nlのビルドログを利用してリビジョンナンバーからハッシュ値を調べる必要があります。実際にGitに渡すのはリビジョンナンバーではなくハッシュ値でないといけません(タグがついていればそれも利用できますが、x264はついていないですし…)。

例えば、たまに2chのx264のスレとかで「rev1790だと大丈夫だけどrev1803以降だとおかしくなる」というようなレスがありますが、こういうときにいちいちハッシュ値を調べるのって面倒です。面倒なので、リビジョンナンバーを指定するとハッシュ値を自動で調べてgit resetやgit showやgit diffに渡す、簡単なシェルスクリプト(rev_roll.sh)を書きました。名前からして適当です(笑)x264.gitからgit cloneしたフォルダに入れて使ってください。使い方は、スクリプトの冒頭10行ちょっとを読めばすぐにわかると思います。自分に必要な最低限のオプションしか用意していませんが(苦笑)



エラーメッセージとかかなり適当なスクリプトですけど、リビジョンナンバーで操作したいときにどうすればいいかのヒントにはなるかな、と。必要なら色々弄ってオプションを追加してください。あと、このスクリプトは、あくまでplainなx264.gitしか想定していないので、他の用途で使って不具合が出たときは自分で弄って修正してください。ブランチはorigin/masterで決めうちにしちゃっていますし。「もうちょっといい方法があるよ〜」って人は是非教えてくださいm(__)m

…。

実はGistを使ってみたかっただけ疑惑(ぉ

No comments:

Post a Comment