bzr-svn の使い方 このエントリをはてなブックマークに登録

2009年04月07日

もりもりもりもり / , , , ,

はじめまして、クレイのもりやまです。弊社サイトがようやくきちんとしたサイトになったので、合わせてブログも設置してみました。今後ともよろしくお願いします。

さて、最初の記事は 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 にはまた違った便利さがあります。ぜひ使ってみてください。

  1. メモからはじめる情報共有 DocBase 無料トライアルを開始
  2. DocBase 資料をダウンロード

「いいね!」で応援よろしくお願いします!

このエントリーに対するコメント

コメントはまだありません。


トラックバック

we use!!Ruby on RailsAmazon Web Services

このページの先頭へ