BT

ラージファイル拡張を備えた Mercurial 2.0 がリリース

| 作者: Alex Blewitt フォローする 4 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2011年11月6日. 推定読書時間: 3 分 |

原文(投稿日:2011/11/03)へのリンク

SelenicMercurial 2.0 をリリースした。この DVCS ツールとしては 今年3回目のアップグレード になる。

今回のリリースでは ラージファイル拡張 (Largefile Extension) が導入された。これは基本的に分散型バージョン管理システムである Mercurial に対して,例外的に集中型データストレージを導入するものだ。Mercurial の備えている Revlog ストレージ機構は,サイズの大きなバイナリファイルの保管にはあまり適していない。ラージファイル拡張はこの種のファイルを,必要時ベースでダウンロードすることが可能な集中型サーバロケーションを実現する。

DVCS にサイズの大きなバイナリファイルを格納する場合,更新頻度が高いときに問題が発生することがある。バイナリファイルの格納に差分圧縮 (変更された部分のみ格納する,などの方法で) を使用したとしても,リポジトリのサイズがすぐに膨らんでしまうのだ。さらにこのようなリソースがリポジトリ履歴の一部である場合,サイズの切り詰めがコンテントハッシュに影響を及ぼし,結果的にレポジトリのバージョンにも影響する。

使用するバージョンシステムもよるが,サイズの大きなリソースを (定期的にアクセスしない) 別ブランチに格納するかどうかによって,クローンリポジトリのサイズが変わってくる可能性がある (ただしソースには影響しない)。Mercurial のラージファイル拡張では,サイズの大きなファイル処理に別ルートを用意して,クローンリポジトリ内のラージファイルへの (実質的な) シンボリックリンクを提供する。

現在チェックアウトされているバージョンに必要のないラージファイルは,クローンあるいはフェッチ/プッシュ操作時にはダウンロードされない。しかしラージファイルへのリンクを1つ以上含むバージョンがチェックアウトされた場合には,その内容をサーバからダウンロードするために,独立した別のコネクションが実行される。これは明らかに,リポジトリ内の特定のバージョンに関しては,チェックアウト時にサーバとの接続が必要である,ということを意味している。しかしローカルの Mercurial クローンがすでにダウンロードしたラージファイルをキャッシュに保持することによって,ダウンロード済みであるものについてはそちらを使用することができる。

hg add コマンドには --large という新しいオプションが追加された。ファイルがラージファイルであること (代替ルートで,必要時にキャッシュを併用する集中型ストレージを使用する) を指定する。あるいは自動的にラージファイルとして扱う判定条件を,固定サイズ (デフォルトでは 10Mb 以上),あるいは名称パターン (*.zip のように) で設定することも可能だ。今回の新フォーマットを利用するためには,hg lfconvert コマンドでリポジトリフォーマットを更新しなければならないことに注意が必要だ。ラージファイルの状態を追跡する dirstate コマンドには,Mercurial 2.0 では現在 2Gb までという制限がある。リリース以降,将来的にはフィックスされると思われるが,こちらも注意する必要がある。

Mercurial 2.0 では,チェリーピッキング (選択的マージ) のMercurial 版実装である graft コマンドが追加された。必要な変更部分をマージロジックを使用して決定した後,マージノードを生成せずに,それらを部分単位で適用する。他のチェリーピッキング実装と同じように,過去にコピー済みの変更が重複して適用されることはない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT