« 2011年9月 | トップページ | 2011年12月 »

2011年11月の1件の記事

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 は必須と言っていいエクステンションだと思います。コミットを繰り返すほど効果が大きくなるはずです。

« 2011年9月 | トップページ | 2011年12月 »

Social connection

  • Check

最近のトラックバック

2017年9月
          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

これも見とるよ

その他

無料ブログはココログ