Fossilの wiki
Fossil は wiki マークアップ を多くの場面で使います:
- スタンドアローンな wiki ページ
- バグレポートの説明とコメント
- チェックイン時のコメント
- ファイル名が ".wiki" で終わる 埋め込みドキュメント
fossil wiki におけるフォーマットのルール は単純かつ直感的にできています。 wiki のアイデアは、段落、番号付き・番号無しリスト、ハイパーリンクを提供し、 単純な文章に HTML のサブセットを利用できるようにすることで、より複雑な フォーマットのタスクを行えるようにすることです。
何人かのコメンテーターは、HTML の利用は間違いで、fossil は 好きなフォーマットの wiki エンジンを使えるようにすべきだと言いました。 このアプローチは考慮したのですが、以下の理由により却下しました:
- 標準的な wiki マークアップが無く、それぞれのエンジンは 微妙に違う動作をする。
- fossil の(限定された) Wiki マークアップは他の wiki エンジン でも一般的であり、直感的かつ90%のフォーマットには十分なものである。
- fossil の wiki マークアップで不足な場合には HTML が使える。 HTML は大半のプログラマにとっては親しい言語であり、新たに覚える必要がない。 また、それほど頻繁に HTML を使わなければならない場面には遭わないと考えられる。
スタンドアローンな wiki ページ
それぞれの wiki ページはチェックインに依存しない形で、自身の履歴を持っています。 wiki ページはチェックインと同様にブランチやマージを行うことができますが、 この原稿を書いている時点(2008-07-29)では、それらをサポートするインターフェースが ありません。現行のwiki 実装では最新のタイムスタンプを持つ wiki ページの版を表示しています。
言い換えれば、二人のユーザがそれぞれの無関係な変更を同じwiki ページについて 行い、それらをリポジトリに入れた後、リポジトリを同期したとします。 そうすると wiki ページは fork します。この時、Web インターフェースは 最後にチェックインされた方のページ内容を表示します。 もう一方の変更内容は履歴から見付けることができます。 ファイルのフォーマットはこれらのブランチをマージできるようになっているのですが、 今のところはユーザインターフェース側にマージの仕組みがありません。
wiki ページへの変更は、それぞれ独立した "Wiki Page" への control artifact として扱われます。
埋め込みドキュメント
ソースツリー中の ".wiki" で終わるサフィックスを持つファイルは、fossil サーバ において特別な形でアクセスおよび表示されます。 このことにより、プロジェクトドキュメントをソースツリー中に取り込み、オンラインで 取り扱うことができます。 (この詳細については ここを参照して下さい)
いくつかのプロジェクトでは、ドキュメントを wiki で扱うかもしれません。 このことに何も問題はありません。しかし、他のプロジェクトではドキュメントを ソースツリーと一緒に管理し、バージョン管理すると共にチェックイン可能な開発者 のみがそれを変更できるようにするかもしれません。 埋め込みドキュメントは後者の目的のために提供されます。 どちらのドキュメント方式を取るにしろ、同じ wiki 記法を利用できます。 いくつかのプロジェクトでは両方のドキュメントを同時に利用することもできます。 どちらも同じフォーマットを利用しているため、wiki から埋め込みドキュメントに ファイルを移したり、その逆が必要になっても些細な変更で済みます。
バグレポートとチェックインコメント
チェックイン時のコメントおよびバグレポートの説明文はどちらも wiki フォーマットを利用できます。もちろん、適用されるフォーマットルールも同一です。 これにより、バグレポートとチェックインのために別の文法を覚える必要がなくなります。