2012-02-08
もし FuelPHP のバグを見つけたら (4)〜ドキュメントの修正を Pull Request する方法
(2012/07/14) この一連の記事をまとめ加筆修正しアップデートした電子書籍をリリースしました。よろしければ、ご覧ください → 『FuelPHP に貢献する方法』
の続きです。
前の記事を読んでいない場合は、先に読むことをお薦めします。
今日は、ドキュメントへの Pull Request の送り方について解説します。
ドキュメントの誤りを見つけた場合は、基本的には Pull Request することになります。そのほうが本家も修正が楽ですし。また、Pull Request の送り方は、前回説明したソースコードのリポジトリへ送る場合と基本的に変わりません。ただし、コードとは違い sign-off は求められていないようです。
しかし、日本固有の事情として、日本語化のためのリポジトリと本家リポジトリの 2つのリポジトリがあり、また、GitHub では起源が同じリポジトリは 1つしか fork したリポジトリを持てません。
- 日本語化のためのリポジトリ https://github.com/NEKOGET/FuelPHP_docs_jp
- 本家リポジトリ https://github.com/fuel/docs
そのあたりのことについて解説します。
FuelPHP_docs_jp リポジトリを fork する
まず、日本語化のためのリポジトリを GitHub の Web ページに行って fork します。
「Fork」ボタンを押して fork します。
以下のように自分のリポジトリが作成されました。
このままでも問題ありませんが、趣味の問題でリポジトリ名を「fuel-docs」に変更しておきます。「Admin」ボタンを押します。
「Repository Name」を変更し、「Rename」ボタンを押します。
警告がでますが、ボタンを押して進みます。
これでリポジトリ名が変更できました。
fork した自分のリポジトリを手許の PC に clone する
git clone します。
$ git clone git@github.com:kenjis/fuel-docs.git
Cloning into fuel-docs...
remote: Counting objects: 6789, done.
remote: Compressing objects: 100% (2354/2354), done.
remote: Total 6789 (delta 4542), reused 6529 (delta 4308)
Receiving objects: 100% (6789/6789), 2.15 MiB | 435 KiB/s, done.
Resolving deltas: 100% (4542/4542), done.
FuelPHP_docs_jp リポジトリを remote リポジトリに追加します。名前は「nekoget」とします。
$ cd fuel-docs $ git remote add nekoget git://github.com/NEKOGET/FuelPHP_docs_jp.git $ git fetch nekoget
From git://github.com/NEKOGET/FuelPHP_docs_jp
* [new branch] 1.0/develop -> nekoget/1.0/develop
* [new branch] 1.0/master -> nekoget/1.0/master
* [new branch] 1.1/develop -> nekoget/1.1/develop
* [new branch] 1.1/develop_japanese -> nekoget/1.1/develop_japanese
* [new branch] 1.1/master -> nekoget/1.1/master
* [new branch] 1.1/master_japanese -> nekoget/1.1/master_japanese
本家リポジトリを remote リポジトリに追加します。名前は「upstream」とします。
$ git remote add upstream git://github.com/fuel/docs.git $ git fetch upstream
From git://github.com/fuel/docs
* [new branch] 1.0/develop -> upstream/1.0/develop
* [new branch] 1.0/master -> upstream/1.0/master
* [new branch] 1.1/develop -> upstream/1.1/develop
* [new branch] 1.1/master -> upstream/1.1/master
バグ修正を commit する
Pull Request は開発ブランチに送る必要があります。現在は、1.1/develop になります。
1.1/develop ブランチを upstream/1.1/develop から作成します。
$ git checkout upstream/1.1/develop $ git checkout -b 1.1/develop
バグ修正を commit する前に、Pull Request 用のブランチを作成します。1つの Pull Request ごとに必ず 1つのブランチを作成します。ブランチ名は何でも構いませんが、ここでは「fix_dbutil」というブランチ名にします。
$ git checkout -b fix_dbutil
バグを修正します。
変更したファイルを git add し、commit します。
GitHub へ push する前に
本家リポジトリを clone して、すぐに Pull Request を送る場合はいいのですが、時間が経つと本家での開発が進みます。
Pull Request を送る前に、本家の最新の状態に追随しておきましょう。
まず、1.1/develop を最新の状態にします。
$ git checkout 1.1/develop $ git fetch upstream $ git merge upstream/1.1/develop
1.1/develop での変更を Pull Request 用のブランチに取り込みます。
$ git checkout fix_dbutil $ git rebase 1.1/develop
コンフリクトが起きなければこれで完了です。
運悪くコンフリクトが起きてしまった場合は、コンフリクトを修正して git add し、
$ git rebase --continue
として rebase を完了させてください。
GitHub へ push する
GitHub の自分のリポジトリに Pull Request 用のブランチを push します。
$ git push origin fix_dbutil
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 440 bytes, done.
Total 5 (delta 4), reused 0 (delta 0)
To git@github.com:kenjis/fuel-docs.git
* [new branch] fix_dbutil -> fix_dbutil
Pull Request を送る
GitHub にアクセスし、push したブランチを確認します。
ブランチが正しいことを確認し、「Pull Request」ボタンを押します。
このままだと FuelPHP_docs_jp へ Pull Requet を送ってしまいますので、「Change Commits」ボタンを押して変更します。
リポジトリとブランチを本家の 1.1/develop に合わせ、「Update Commit Range」ボタンを押します。
送付先が正しく本家に変更されました。
タイトルと本文を記入します。「Preview」タブを押せば、プレビューできます。typo などの修正は本文はなくてもわかるでしょう。
「Files Changed」タブを押せば、変更点を確認できます。
記入が完了したら、「Send pull request」ボタンを押すと Pull Request が送られます。
「もし FuelPHP のバグを見つけたら (5)」へつづく。
関連
- 38 https://www.google.co.jp/
- 28 http://codeigniter.com/forums/viewthread/208731/
- 17 http://www.google.co.jp/url?sa=t&rct=j&q=fuelphp&source=web&cd=3&sqi=2&ved=0CEYQFjAC&url=http://d.hatena.ne.jp/Kenji_s/20111117/1321519058&ei=KOAwT7zIDKjDmQWGuoC7BQ&usg=AFQjCNHC280Gu_hfL_3DYarBvvMVnwPRXQ&sig2=RsEsCPQn4QrNbbTEmsbZWQ
- 15 http://fuelphp.phpfogapp.com/wiki/
- 10 http://twitter.com/
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCcQFjAA&url=http://d.hatena.ne.jp/Kenji_s/20120208/1328659074&ei=8Y95T8nsGeKriAedofnmBA&usg=AFQjCNFChYz6Mj3CiNWMfQNnuvlI1uiIYw&sig2=FdoMQCvm4CcT_TERFzQTfA
- 6 http://atnd.org/events/22380
- 6 http://d.hatena.ne.jp/
- 6 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CC8QFjAB&url=http://d.hatena.ne.jp/Kenji_s/20120208/1328659074&ei=NLOGT6zGMuGhmQWp8-GzBw&usg=AFQjCNFChYz6Mj3CiNWMfQNnuvlI1uiIYw&sig2=fVxT-lqwLXb4UffTfOFjJA
- 5 http://fuelphp.phpfogapp.com/wiki/index/FuelPHP の基礎