また 1 ヶ月ぶりになってしまいました。もりやまです。
いろいろネタはあるんですが、文章にまとめるのに時間がかかってしまってなかなかアップできません。もうちょっとがんばります。。。
さて、今回は最初に書いた bzr-svn のその後です。
最近 bzr update や bzr diff をしたときに、エラーで落ちてしまうようになって、いろいろ調べたところ、推奨リポジトリフォーマットが新しくなっていました。
bzr はリポジトリフォーマットがたくさんあるようです。bzr help current-formats を実行するとたくさん出てきます。
$ bzr help current-formats Current Storage Formats pack-0.92: (native) (default) New in 0.92: Pack-based format with data compatible with dirstate-tags format repositories. Interoperates with bzr repositories before 0.92 but cannot be read by bzr < 0.92. Previously called knitpack-experimental. For more information, see http://doc.bazaar- vcs.org/latest/developers/packrepo.html. rich-root-pack: (native) New in 1.0: A variant of pack-0.92 that supports rich- root data (needed for bzr-svn and bzr-git). 1.6: (native) A format that allows a branch to indicate that there is another (stacked) repository that should be used to access data that is not present locally. 1.6.1-rich-root: (native) A variant of 1.6 that supports rich-root data (needed for bzr-svn and bzr-git). 1.9: (native) A repository format using B+tree indexes. These indexes are smaller in size, have smarter caching and provide faster performance for most operations. 1.9-rich-root: (native) A variant of 1.9 that supports rich-root data (needed for bzr-svn and bzr-git). 1.14: (native) A working-tree format that supports content filtering. 1.14-rich-root: (native) A variant of 1.14 that supports rich-root data (needed for bzr-svn and bzr-git). default-rich-root: (native) Default format, rich root variant. (needed for bzr-svn and bzr-git). subversion: Subversion repository. See ``bzr help formats`` for more about storage formats.
以前の記事で作ったリポジトリは rich-root-pack 形式なので、1.0 のときに追加された形式のようです。
bzr help formats も実行してみると、
$ bzr help formats Storage Formats To ensure that older clients do not access data incorrectly, Bazaar's policy is to introduce a new storage format whenever new features requiring new metadata are added. New storage formats may also be introduced to improve performance and scalability. Use the following guidelines to select a format (stopping as soon as a condition is true): * If you are working on an existing project, use whatever format that project is using. (Bazaar will do this for you by default). * If you are using bzr-svn to interoperate with a Subversion repository, use 1.14-rich-root. * If you are working on a project with big trees (5000+ paths) or deep history (5000+ revisions), use 1.14. * Otherwise, use the default format - it is good enough for most projects. If some of your developers are unable to use the most recent version of Bazaar (due to distro package availability say), be sure to adjust the guidelines above accordingly. For example, you may need to select 1.9 instead of 1.14 if your project has standardized on Bazaar 1.13.1 say. Note: Many of the currently supported formats have two variants: a plain one and a rich-root one. The latter include an additional field about the root of the tree. There is no performance cost for using a rich-root format but you cannot easily merge changes from a rich-root format into a plain format. As a consequence, moving a project to a rich-root format takes some co-ordination in that all contributors need to upgrade their repositories around the same time. (It is for this reason that we have delayed making a rich-root format the default so far, though we will do so at some appropriate time in the future.) See ``bzr help current-formats`` for the complete list of currently supported formats. See ``bzr help other-formats`` for descriptions of any available experimental and deprecated formats.
と表示されます。この中で
* If you are using bzr-svn to interoperate with a Subversion repository, use 1.14-rich-root.
と述べられています。どうやら 1.14-rich-root 形式を使うのがいいようです。
当然ですが、bzr が 1.14 以降でないと使えません。手元の macports でインストールしてあるバージョンは以下のとおりです。
$ port installed bzr bzr-svn The following ports are currently installed: bzr @1.15.1_0 (active) bzr-svn @0.6.1_0 (active)
それではリポジトリを 1.14-rich-root 形式にアップグレードしてみます。アップグレードのサブコマンドは upgrade です。まんまですね。
$ cd /path/to/bzr-svn-repo $ bzr upgrade --1.14-rich-root starting upgrade of file:///path/to/bzr-svn-repo/ making backup of file:///path/to/bzr-svn-repo/.bzr to file:///path/to/bzr-svn-repo/backup.bzr starting repository conversion repository converted finished
これで変換完了です。変換前はエラーで落ちていた update や diff も、変換後はすんなり通るようになりました。
bzr に手を出してそろそろ半年になりますが、なかなかいい感じです。なにより svn からの乗り換えが楽です。
git ほど速くはないですが、使い勝手は git より上じゃないかと思います。
ぜひ bzr 使ってみてください。
このエントリーに対するコメント
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)
- トラックバック
「いいね!」で応援よろしくお願いします!