Wikiばなv2 ポジションペーパー
著者:青木峰郎 (BitChannel作者)
テーマ:Wikiとバージョン管理
バージョン管理とは?
一言で言えば、ページをいつでも過去の姿に戻せるようにすること。
範囲の広い Undo。Undo機能のないエディタが存在しないことから
わかるように、Wiki (一種のファイルシステム) にバージョン管理
が導入されるのは歴史の必然なのである。
目的
- 書き込む敷居を下げる (絶対に消えないという信頼感)
- 人のコメントを消す敷居を下げる (消しても戻せる)
- 荒らしに対抗する
導入事例 (Rubyものの場合)
- BitChannel (CVS必須)
- HikiのCVSバックエンド、Subversionバックエンド
- RWikiのCVSバックエンド
- AsWikiのRCSバックアップ
実装形態と、その問題
- 外部コマンドを呼び出す (CVS, RCS, Subversion)
- コマンドのバージョン間互換性のなさにふりまわされる
- 多かれ少なかれ無理矢理な実装になる → 完璧を求めるな
- 遅い
- 自前でdiffを累積する (「バックアップ」という名前が多い)
- レポジトリサーバ + (F)CGIフロントエンド (RWiki2方式)
バージョン管理自体の問題
- 一度チェックインしたら絶対消せない→ 特定リビジョンを隠す機能を構想中。管理人にしかいじれないので管理コストが増す。
- 管理コストが増える
- CVSレポジトリの管理ができる人間はあんまりいないだろう
- Subversionはまだ安定度が足りない
- 「Subversionが嫌い」