もし FuelPHP のバグを見つけたら (5)〜Pull Request 後の修正


(2012/07/14) この一連の記事をまとめ加筆修正しアップデートした電子書籍をリリースしました。よろしければ、ご覧ください → 『FuelPHP に貢献する方法』

の続きです。

前の記事を読んでいない場合は、先に読むことをお薦めします。

今日は、Pull Request 後にコア開発者などからコメントが付いて、Pull Request した変更を修正する場合です。

修正前の準備

まず、1.1/develop ブランチを最新の状態にします。

$ git checkout 1.1/develop
$ git fetch upstream
$ git merge upstream/1.1/develop

ログを確認すると、以下のように開発が進んでいます。

Pull Request 用のブランチ(ここでは fix_form)を rebase して最新状態を反映させましょう。-f オプションを忘れないように。

$ git checkout fix_form
$ git rebase -f upstream/1.1/develop

First, rewinding head to replay your work on top of it...
Applying: improve Form::prep_value
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging classes/form/instance.php
Auto-merging tests/form.php
CONFLICT (content): Merge conflict in tests/form.php
Failed to merge in the changes.
Patch failed at 0001 improve Form::prep_value

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".

コンフリクトしましたので、エディタで開いて修正します。修正が完了したら、

$ git add tests/form.php
$ git rebase --continue

として rebase を完了します。これで、Pull Request に修正を追加する準備ができました。

Pull Request の修正

普通に修正してコミットします。sign-off を忘れずに。

そして、GitHub に Pull Request 用のブランチを push します。-f オプションを忘れないように。

$ git push -f origin fix_form

push が完了すれば、Pull Request に自動的に反映されます。これで完了です。

もし FuelPHP のバグを見つけたら (6)」へ続く。