Bazaar(バザー、以前はBazaar-NG、コマンドラインツールとしてはbzr)は、
カノニカルが支援している
クロスプラットフォームの分散型
バージョン管理システムです。このシステムは、誰でも簡単に自由ソフトウェアや
オープンソースソフトウェアのプロジェクトに貢献できるように設計されています。
開発チームは、使いやすさ、正確性、そして柔軟性に重点を置いて開発を進めてきました。上流のコードを容易にブランチ・マージできるように設計されており、いくつかの基本的なコマンドを覚えるだけで、すぐに生産的に作業を始めることができます。Bazaarは、ローカルファイルで複数のブランチを扱う単独の開発者から、ネットワークを介して共同作業を行うチームまで、幅広い状況に対応可能です。
しかし、
2014年にエリック・レイモンドの提案により
GNU EmacsがBazaarからGitに移行したことをきっかけに、
Bugzillaや
MySQLなど、他の多くのプロジェクトでもGitなどへの移行が進んでいます。この結果、Bazaarの採用例は減少傾向にあります。
Bazaarは
Pythonで記述されており、FreeBSD、主要な
Linuxディストリビューション、macOS、
Solaris、Windows向けのパッケージが提供されています。また、Bazaarは自由ソフトウェアであり、
GNUプロジェクトの一部として位置づけられています。
特徴
Bazaarのコマンドは、CVSやSubversionなどの他の
バージョン管理システムにあるコマンドとよく似ており、リモート
リポジトリサーバーなしで新しいプロジェクトを開始し、管理することが容易です。
純粋な分散型
バージョン管理システムとは異なり、Bazaarは中央サーバーの有無に関わらず動作をサポートしており、同じプロジェクトで両方の方法を同時に使用することも可能です。Launchpadは、Bazaarで管理されたプロジェクトのための無料ホスティングサービスを提供しています。
Bazaarは、Subversionなどの他のリビジョン管理システムとの連携をサポートしており、他のシステムからブランチを作成し、ローカルで変更を加えてBazaarブランチにコミットし、その後、変更を元のシステムにマージし戻すことができます。bzr-svnプラグインを使用することで、Subversionの基本的なサポートが提供されます。また、MercurialやGitとの連携も初期段階でサポートされており、現在の機能は完全ではありませんが、グラフィカルな履歴を表示できる程度には互換性があります。
Bazaarは、完全な
Unicode文字セットからなるファイル名をサポートしており、コミットメッセージやコミッター名にも
Unicodeを使用することができます。
バージョン1.xのリリースまで、BazaarはGitと比較して動作速度が遅いとされていましたが、以降、いくつかの操作においては、性能面で十分に匹敵するレベルにまで改善されました。特にネットワークの
レイテンシがボトルネックとなる状況では、他のリビジョン管理システムと同等の性能を発揮します。
プラグイン
以下のような便利なプラグインが提供されています。
BzrTools - ユーティリティコレクション
bzr-svn - Subversion形式のサポート
bzr-git - Git形式のサポート
bzr-rebase
QBzr
bzr-keywords
Windows版のインストーラには、標準でBzrTools、bzr-svn、QBzr、TortoiseBZRが含まれています。
ユーザー
過去には、GNU Mailman、
MySQL、GNOMEの
Javaバインディングなど、多くの有名なプロジェクトでBazaarが使用されていました。
歴史
Bazaarの歴史は、以下の2つの段階に分けられます。
Baz: Canonical Ltd.が初期に使用していたバージョン管理システム
Bazaar: Bazの後継として開発された現在のシステム
"Bazaar"という名前は、元々GNU archのクライアントであるtlaの派生版で使用されていました。この派生版は、現在のBazaarと区別するためにBazと呼ばれています。BazはCanonical Ltd.の従業員であるRobert Collinsによって2004年10月に発表され、2005年までメンテナンスされていました。その後、Bazaar-NG(現在のBazaar)がBazの後継として発表されました。Bazは現在メンテナンスされておらず、Canonicalはこれを非推奨としています。Bazの最後のリリースは2005年10月にリリースされたバージョン1.4.3でした。計画されていたBaz 1.5のリリースは2006年に放棄されました。
2005年2月、開発者のMartin PoolはCanonicalに雇われ、「オープンソースハッカーが利用を好む分散型
バージョン管理システムの構築」を担当することになりました。Poolは以前から、様々な
バージョン管理システムについて説明やレビューをブログなどで発信していました。公開ウェブサイトとメーリングリストは2005年3月に作成され、同年3月26日には、最初のプレリリースである0.0.1がリリースされました。
Bazaarは、新しい実装と全く異なるコードベースと設計で作られており、GNU archやBazとは多少異なるコマンドセットを持っています。開発当時、他のオープンソースのリビジョン管理システムの良いアイデアを取り入れ、分散型で構築されました。Bazaarは当初、機能のテストベッドとして後でBazに統合する予定でしたが、2005年中頃には、Bazの主要な開発者の多くがBazaarでの作業に重点を移し、Bazは放棄されることになりました。
Bazaarのバージョン1.0は
2007年12月にリリースされました。2008年2月には、
GNUプロジェクトの一部となりました。
停滞
2014年には、Bazaarを採用していた
BugzillaがGitに移行するなど、Bazaarは停滞傾向にあります。
Bugzillaが移行した理由として、「Gitが
デファクトスタンダードになりつつある一方で、Bazaarは月に2、3のコミットがあるだけで、ほぼ死んだ状態にある」と述べられています。
参照
公式ウェブサイト (英語)
freenode上の#Bzr接続