バージョン管理プラグイン

(自分で書いといて絶賛放置中の)google_analyticsプラグインを書いたときのノウハウを元にバージョン操作をhikiで出来るようにするプラグインを書いてみる。以前、こことかこことかに書いた話をHiki上で出来るようにしたものである。

history.rbの場合、個々のページについて特定のリビジョンを呼び出してページを書き直す形でバージョンを操作するんだけど(バージョンそのものが戻るわけではない)、svn管理下にある@data_path/text以下のバージョンをsvnコマンドを使ってそのまま操作してしまうことが出来るようにするものを作ってみた。

コンフリクトが起こる場合の解決法は面倒そうなので(history.rbがあのような形式になったのもそれが理由だと思う)、バージョン操作をする側のwikiは編集機能を持たないようにしておく。想定する使い方は非公開編集用wikiと公開用wikiに分けて、バージョン管理された非公開wikiで書いたものをいざリリースするときに、公開用wikiに入れたこのプラグインですべてのページを一斉にリリース版にアップデートしたりするような使い方など。

@data_path/textだけをsvn upしても実際のページには反映されず@data_path/cache/parserも消しておく必要があるのは以前苦労したのだが、ページを追加したり消去したりする操作が伴う場合にはさらに@data_path/info.dbも消しておく必要がある。ただ、cache/parserはデータファイルをHTML化したものをキャッシュしているだけらしいのだが、info.dbのほうはページの一覧を管理していたり、ファイル名と実際のタイトルとの関連付けを行っていたり(ページ作成後タイトルを変更したりするとこの関連付けが必要になる)、ページのアクセスカウントも取っていたりしているようである。cache/parser同様、消しても再度誰かがアクセスすれば自動的に作られるようになっているのだが、その場合タイトル関連付けのデータやアクセスカウントは失われてしまう。アクセスカウンタは外部で別にとるようにすれば解決すると思うが、実際のタイトルというバージョン管理に含まれれて欲しいデータがバージョン管理の外にあるのは何とかできないかなと思うのだが…

カテゴリー: hiki. 1 Comment »

コメント / トラックバック1件 to “バージョン管理プラグイン”

  1. koma2 Says:

    正直、メタデータである info.db がバージョン管理されないのは片手落ちだと思ったのだけど、これをバージョン管理するようにすると後方互換性の確保が難しくなるので、どうするか迷って結局放置したのでした(1年ほど昔の話)。


コメントは受け付けていません。

%d人のブロガーが「いいね」をつけました。