Bitbucket で CodeIgniter 2.0 を開発してみよう

Bitbucket で公開されている CodeIgniter 2.0 のソースを元に、開発を進める手順について解説します。

準備

https://bitbucket.org/plans にアクセスして、「5 Users Free」より「sign up」してアカウントを作成します。アカウント作成の詳細は、Bitbucket に登録しよう を参照してください。

自分の PC に Mercurial をインストールします。

Ubuntu の場合は、

$ sudo apt-get install mercurial

Windows の場合は、TortoiseHg のインストール を参照してください。

Bitbucket で EllisLab の CodeIgniter リポジトリを fork する

まず、EllisLab の CodeIgniter リポジトリを fork して、自分用のリポジトリを作成します。

EllisLab の CodeIgniter リポジトリのページ https://bitbucket.org/ellislab/codeigniter へアクセスし、「fork」ボタンを押します。


fork の作成ページに移りますので、「Create fork」ボタンを押します。Name(リポジトリ名)は自由に変更できます。Description(説明)にリポジトリの説明を記載することもできます。


「Create fork」ボタンを押せば、fork が作成されるはずですが、何故か、下のようなエラーページが表示されました。

しかし、リポジトリは作成されていました。


「Repositoies」メニューに作成した「CodeIgniter」が表示されますので、クリックします。


自分用の「CodeIgniter」リポジトリのページに移動します。

clone するコマンドが表示されています。

なお、自分が作成したリポジトリはいつでも完全に削除できますので、気軽に試してみましょう。

自分の PC に作成したリポジトリを clone する

Bitbucket 上で作成したリポジトリのコピーを自分の PC 上に作成(ダウンロード)します。表示されていたコマンドを入力するだけの簡単な作業です。

$ hg clone https://kenji_s@bitbucket.org/kenji_s/codeigniter

以下のように表示されて完了です。

複製先ディレクトリ: codeigniter
全チェンジセットを取得中
チェンジセットを追加中
マニフェストを追加中
ファイルの変更を追加中
2091 のチェンジセット(10598 の変更を 477 ファイルに適用)を追加
ブランチ default へ更新中
ファイル状態: 更新数 314、マージ数 0、削除数 0、衝突未解決数 0

Mercurial の設定をする

ここではこのリポジトリ専用の設定をします。自分用の共通の設定をしたい場合は「~/.hgrc」に記載します。

clone したリポジトリに移動し、設定ファイル「.hg/hgrc」を編集します。

$ cd codeigniter
$ vi .hg/hgrc

[paths] セクションを以下のように変更します。URI に含まれるユーザ名は削除し、別途設定します。orig は本家のリポジトリのパスです。

[paths]
default = https://bitbucket.org/kenji_s/codeigniter
orig = https://bitbucket.org/ellislab/codeigniter

[ui] セクションをファイルの最後に追加します。username には Bitbucket のユーザ名を指定します。

[ui]
username = kenji_s

HTTP 認証でのパスワード設定も追加しておきます(参考)。頭の「bb」は、この認証設定の名前です。自由に指定できます。

[auth]
bb.prefix = bitbucket.org
bb.username = kenji_s
bb.password = (bitbucket のパスワード)
bb.schemes = https

念のため、自分以外が設定ファイルにアクセスできないようにパーミッションを変更しておきます。

$ chmod og-rwx .hg/hgrc

なお、ここでは HTTPS でのアクセス方法で設定していますが、SSH でアクセスすることもできます。その場合は、Bitbucket の Account ページから公開鍵を登録してください。[auth] セクションの設定は HTTP 認証の設定ですので、SSH の場合は不要になります。

自分の PC 上のリポジトリで CodeIgniter に変更を加える

ファイルを追加する場合は、「hg add」コマンドを使います。

$ hg add path/to/filename.php

変更したファイルの状態は「hg status」コマンドで確認できます。

$ hg status

変更した内容は「hg diff」コマンドで確認できます。

$ hg diff

変更が完了したら、「hg commit」コマンドで、変更を自分の PC 上のリポジトリに登録します。

$ hg commit

自分が行った変更を Bitbucket へ push する

自分の PC 上のリポジトリでの変更を「hg push」コマンドで Bitbucket へアップロードします。

$ hg push
https://bitbucket.org/kenji_s/codeigniter への反映中
変更点を探索中
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
bb/acl: kenji_s is allowed. accepted payload.

上記のように表示されて完了しました。

Bitbucket の自分のリポジトリのページにアクセスすると、変更がコミットされていることが確認できます。

本家の変更点を pull する

本家での開発は進んでいきますので、その変更点を自分のリポジトリに pull しましょう。

まず、本家リポジトリより自分の PC のリポジトリへ、変更点を pull します。ここでは「-r」オプションで default ブランチのみを pull するように指定しています。

$ hg pull -r default orig
https://bitbucket.org/ellislab/codeigniter から取り込み中
変更点を探索中
チェンジセットを追加中
マニフェストを追加中
ファイルの変更を追加中
4 のチェンジセット(5 の変更を 5 ファイルに適用)を追加(+1個のヘッド)
(ヘッド一覧表示は 'hg heads'、マージ実施は 'hg merge')

ヘッドが 2つになっているため merge します。

$ hg merge

commit します。

$ hg commit

これで、自分の PC 上のリポジトリにコミットされました。続いて、Bitbucket の自分のリポジトリに push します。

$ hg push
https://bitbucket.org/kenji_s/codeigniter への反映中
変更点を探索中
adding changesets
adding manifests
adding file changes
added 3 changesets with 2 changes to 2 files
bb/acl: kenji_s is allowed. accepted payload.

これで完了です。

(19:11 追記) ここでは、Bitbucket のユーザ名に「_」を使っていますが、「Free Hosting」という機能でユーザ名がホスト名に使われるようですので、アンダースコアは使わない方が無難かも知れません。

参考

入門Mercurial Linux/Windows対応

入門Mercurial Linux/Windows対応

関連

CodeIgniter徹底入門

CodeIgniter徹底入門