bazaar分散リポジトリ導入

はじめに

分散リポジトリに慣れようということで
mercurial(hg)をしばらく使っていたのだけど
少し不満がでてきた

  • ファイル名によってはコミットできない場合がある
  • Linux-Windows混在環境で文字化けする
  • tortoiseHgの完成度がいまいち

同じ問題はGitでも起きるかもっとひどくなるため
まぁこんなもんでいいかと使っていたが
人に勧められる環境ではなさげだった

試しにbazaarを入れてみたら結構快適だったのでメモしとく

特徴

mercurialとの個人的な比較

  • 利点
    • ファイル名をUnicodeで保存するので日本語につよい
    • シェル拡張のtortoiseBzrが最初から日本語化されている
    • 開発がcanonical 資金も開発者も潤沢な気がする
  • 欠点
    • アクセス制御がリポジトリ単位,hgはフォルダ/ファイル単位

詳しい比較は@ITでやっているので参考にどうぞ
分散バージョン管理Git/Mercurial/Bazaar徹底比較 (5/5):ユカイ、ツーカイ、カイハツ環境!(3) - @IT

導入

公式サイトのダウンロードからwindows用のバイナリをダウンロード
あなたならきっと雰囲気で辿れるはず
Bazaar

windowsのシェル拡張機能のtortoiseBzrもセットになっていて便利
ただインストールオプションでtortoiseBZRをチェックするのをわすれずに

サーバー

ubuntuサーバーを中央リポジトリにする

導入

インストール
ubuntuだと最新バージョンが入ってくる事が期待できる

 $sudo aptitude install bzr 

ユーザーも作っておく

 $bzr whoami "hoge "
リポジトリ作成
 $bzr init 

適当に他のリポジトリからファイルなどコピーして・・・

 $bzr add 

ここでエラーがでた
コピー元のファイル名が化けて居たのが原因だった
問題のファイルをリネームすると成功

コミット

 $bzr commit 

以上でサーバー側での移行はおわり

チェックアウト

サーバー側はsshサーバーが入っているだけでok

hgの場合とプロトコル指定が異なるだけで基本は同じ

  • hgの場合
    • ssh://username@host:port//home/repository/
  • bzrの場合
    • bzr+ssh://username@host:port/home/repository/

まとめ

mercurial(hg)と似たような感じで使え
導入も比較的簡単だった

svnとの連携はあとあと調べよう