はじめまして、クレイのもりやまです。弊社サイトがようやくきちんとしたサイトになったので、合わせてブログも設置してみました。今後ともよろしくお願いします。
さて、最初の記事は bzr と Subversion の連携についてです。
(追記:2009/06/22)新しい記事で、リポジトリフォーマットについて書きました。
この記事で書いてある rich-root-pack ではなく、1.14-rich-root を使用するようにしてください。
初期化
まず bzr-svn 用のリポジトリを保存するためのディレクトリを作成します。
$ bzr init-repo --rich-root-pack $PROJECT_DIR $ cd $PROJECT_DIR
この中には Subversion リポジトリと同期するための bzr のリポジトリと、開発用の各ブランチを格納します。
まず同期用のリポジトリに Subversion リポジトリからチェックアウトします。ここでは master ディレクトリにチェックアウトするものとします。
$ bzr checkout scheme://remote.host/repos/path master
この中は基本的に編集することはありません。開発はこの bzr リポジトリからブランチを作って、その中で行ないます。ここではブランチのディレクトリを local とします。
$ bzr branch master local
これで開発準備が整いました。
開発フロー
開発を始める前に、まず Subversion のリポジトリの更新を、ローカルの bzr リポジトリに同期します。
$ cd $PROJECT_DIR/master
$ bzr update
更新があれば、それを開発ブランチにも同期します。
$ cd $PROJECT_DIR/local $ bzr pull
これで開発環境が最新の状態になったので、ガシガシコーディングします。
開発が一段落して動作に問題がなければ、開発ブランチにコミットしておきます。
$ bzr st $ bzr ci
コミット前に必ず st で必要なファイルが追加されているか、不要なファイルが追加、編集されていないか確認します。
Subversion リポジトリにコミットできる状態まで開発が済んだら、まずローカルの bzr リポジトリにマージします。
$ cd $PROJECT_DIR/master $ bzr merge ../local
マージが完了したら、Subversion リポジトリにコミットします。
$ bzr ci
このような感じで、最近は今まで Subversion でやっていた操作を、bzr に置きかえるようにしています。
それから、これが一番便利に使えているところなんですが、bzr-svn がマージトラッキングをしてくれます。
Subversion 自体も 1.5 からマージトラッキングが実装されましたが、サーバ側が 1.5 以上で、且つリポジトリのフォーマットが 1.5 以上でないと有効になりません。
しかし、bzr-svn ならサーバ側の Subversion が 1.4 でも、リポジトリフォーマットが 1.4 でも、問題なくトラッキングしてくれるので、マージがとても楽になります。
git は確かに速くていいんですが、bzr にはまた違った便利さがあります。ぜひ使ってみてください。
このエントリーに対するコメント
- トラックバック
「いいね!」で応援よろしくお願いします!