« 「クラウド・カンファレンス in 静岡」覚え書き | トップページ | DVD MULTI ドライブ LF-P968C を Windows 7 でアップデート »

2011年11月21日 (月)

Mercurial で Office (2007) Open XML や OpenDocument を管理する

Microsoft Office 2007 で新しくなった Word、Excel、PowerPoint のファイルフォーマット、Office Open XML ですが、そのまま Mercurial のリポジトリにコミットすると、リポジトリの管理領域 (多分 .hg/store/data の中) のサイズが大きくなってしまいます。

これは、Office Open XML が XML 文書を ZIP 圧縮したファイルであるためです。

Mercurial はコミットするとき、変更されたファイルの差分を抽出して記録しますが、ZIP 圧縮すると差分情報を効率的に抽出できなくなってしまいます。

ところが、そんな問題を解決できそうな ZipdocExtension - Mercurial を発見。

This extension is not distributed with Mercurial と書いてありますが、 TortoiseHg なら一緒に入ってます。

使い方ですが、ホームディレクトリの .hgrcmercurial.ini ファイルに、或いはリポジトリの .hg/hgrcにこんな設定を追加して zipdoc エクステンションを有効にするだけ。

この例では Office Open XML だけでなく、OpenOffice.org の ODF の設定も入れてみました。ODF も XML を ZIP 圧縮しているようなので。XPS / OpenXPS と EPUB も追加してみました。

これで、hg commit するときはファイルの ZIP 圧縮を内部で自動的に解くようになります。だから、差分情報を効率よく抽出してリポジトリに記録してくれるはずです。

また、hg update したらファイルを ZIP 圧縮してから作業領域を更新してくれるようになります。

リポジトリをクローンするときは、クローン先でも zipdoc エクステンションが有効になるように設定しておきましょう。

とはいえ、クローンしたリポジトリで zipdoc エクステンションが有効になっていなくても、作業領域のファイルが圧縮されていない (圧縮形式が Store の) ZIP になるだけなので、ファイルを開くことも普通に出来るようです。

とにかく、Windows で TortoiseHg と Microsoft Office を使うなら zipdoc は必須と言っていいエクステンションだと思います。コミットを繰り返すほど効果が大きくなるはずです。

« 「クラウド・カンファレンス in 静岡」覚え書き | トップページ | DVD MULTI ドライブ LF-P968C を Windows 7 でアップデート »

パソコン・インターネット」カテゴリの記事

プログラミング」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Mercurial で Office (2007) Open XML や OpenDocument を管理する:

« 「クラウド・カンファレンス in 静岡」覚え書き | トップページ | DVD MULTI ドライブ LF-P968C を Windows 7 でアップデート »

Social connection

  • Check

最近のトラックバック

2022年12月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

これも見とるよ

無料ブログはココログ