Snap.Shot.cx

トップページへ戻る

[Zope] とにかくBase64だ、という思想
08/30/2000 03:25 (投稿者:たかの)

ZCVSMixinというプロダクトがある。
これ、ZopeオブジェクトをCVS管理してしまおう!という、versionオブジェクトとは一線を画したプロダクトなのだけど、使ってみたら…もう、いやん。

ZCVSMixinの仕掛けについて簡単に説明しておこう。

まず、ZODB配下のオブジェクトをCVS管理するための作業ディレクトリを用意する。ZCVSMixinで管理するオブジェクトは、すべてこの作業ディレクトリを通じてCVSとのやりとりをする。つまり、

ZODB <-> Work Dir <-> CVS Repository

ちゅう3段構造でもって、ZopeオブジェクトをCVS管理しようという仕掛け。
ところが、この

ZODB <-> Work Dir

のやりとりがクセモノで、Zopeのimport/export機能を利用しているんですな。結局.zexp(バイナリ)か.xml(テキスト)形式のふたとおりしかない。

どうしてこれがダメダメかというと、.xmlの「テキスト形式」ってのは(我々8ビット圏の人間にとって)「まがいもの」にしかすぎないのだ。
ご承知でない方のために補足しておくと、Zopeのimport/export機構は、7bit cleanでないすべてのレコードについて、がつがつにBase64エンコードして吐き出してくれる。つまり、プレーンテキストではない=差分なんて無意味、だということ。

こんなバカなことする悪者はどこだ?と調べると、Zopeのppml(Provide conversion between Python pickles and XML)ちゅうモジュールが犯人。位置はShared.DC.xml.ppmlだ。下手に触ったら従来との.xmlと互換性れなくなりそうだし、おっかなくってとても触れないよ。

で、ZCVSMixinプロダクト自体も使えないシロモノだということで「とりあえずは」片づける。
将来的には、ZopeのXMLエクスポートに頼らない機構を実装するという手もありそうだけど、とてもそこまで面倒みきれない。

ZWikiのときにも思ったのだけど、Zopeってつくづく7bit依存したプロダクトだなぁと思うことしきり。
こりゃぁ、ZopeのUnicode対応も怪しいですぜ、ダンナ。

メールでコメント


(Powered by Zope)
リンクはご自由にどうぞ。各記事には記事番号がついていますので、URLは変わりません。
© 2000-2013 Yukimasa TAKANO, all RIGHTs reserved.