OpenPNE3のリポジトリがSubversionからgithubへお引っ越ししたようです(2)

前回から引き続きお送りします。

バグを修正して、取り込みリクエストを出すの巻きです。

前提として、

Commit Policy (ja) - OpenPNE 3 - OpenPNE Issue Tracking System

を読んでおくといいかもです。

バグトラッキング

Subversionからgithubへお引っ越しをしましたが、バグトラッキングシステムも、
TracからRedMineへお引っ越しをしています。
理由はやはり、MLにばっちり書かれています。

個人的には、OpenPNE3本体とプラグインをごっちゃに、しないため
っていうのが、でかいかと思います。

さらに、今までは、OpenPNE Project運営のほうに、アカウントください連絡を
する必要がありましたが、今のところアカウント発行が自由にできる状態になっています。
githubも含めて考えると、非常に革命的ですね!)

http://redmine.openpne.jp/

ちょっとその前に

gitにはsvn st → svn status
のような短縮コマンドがね〜のか!!
って戸惑うかもしれません。僕は戸惑いました。

でも、エイリアスという便利な設定があります。

git config --global alias.st 'status'
git config --global alias.co 'checkout'
git config --global alias.ci 'commit'

といった具合に設定すると、svn のように git stで状態確認ができます。
これらの設定は --global とすると、 ~/.gitconfig に書き出されているかと思います。

今回モデルとしているバグ

http://redmine.openpne.jp/issues/21

とりあえず、こいつです。

修正

今回は、あまり挑戦的な問題ではないので、ブランチを新たに作らず
本線であるmasterブランチをいじります。

修正が終わったら、変更の場合であっても
git add をする必要があります。追跡対象に加えるという意味らしいです。

config/ProjectConfiguration.class.php.sample

をいじくってみたので

$ git add config/ProjectConfiguration.class.php.sample

といった具合になります。

今、変更中の奴全部、追加対象にする!
というときは

$ git add .

で良いようです。

コミット

コミットと言っても、これでgithubにあるリポジトリが更新されるわけではありません。
やっぱり分散型だからです。作業コピーといってもリポジトリの分身を自分の環境に作っているようなものなので、
自分の環境の中のリポジトリにコミットする、ということです。

コミットするときに、コミットメッセージを入れますが、
RedMineのほうで、リンクしていた方がうれしいですね。

今回は、チケット番号21のバグを修正しているので、
コミットメッセージに ref #21 を含めるといいっぽいです。

追記

今回は、これで修正を終えたので、ref #21よりも、fixes #21とした方が適当だったようです。

本家に取り込まれましたが、コミットメッセージは修正されてましたw

こうすることにより、RedMineのチケットの状態が、取り込まれた時点で自動的にレビュー待ちになってくれます。便利ですね。

自分のgithubリポジトリ

$ git push 

これだけです。

pull request

自分が行った変更を、取り込んでくれと要求するには、githubのpull requestを使うのが便利でしょう。

githubの自分のリポジトリの画面にいくと、pull requestというボタンがあるかと思います。
取り込んでほしいブランチになっているかを確認してボタンを押すと下のようになります。

どのチケットの変更なのかとかを、書いておくと取り込む側も助かるかもしれません。

そして、send request!

これで、あとは本家側が取り込んでくれるのを待つだけです。

こんな感じでしたl

ざっと、こんな勢いです。
まだ、走り出して間もないので、こういうポリシーにしよう!
っていう議論が出てくるかもしれません。

ってなわけで、開発者はMLやhttp://redmine.openpne.jp/projects/op3/wikiを要チェックです。

こんな記事ですが、参考程度になればうれしいです。