DokuWiki

It's better when it's simple

ユーザ用ツール

サイト用ツール


ja:devel:changelog

変更履歴

変更履歴は、最近の変更キャッシュと、ページごとの変更履歴ファイルに書き込まれます。

最近の変更キャッシュは「/data/meta/_dokuwiki.changes」に保存され、日々整理されます。ページごとの変更履歴ファイルは「/data/meta/<名前空間>/<ページ ID>.changes」に保存されます。ページごとの変更履歴ファイルは整理されないため、そのページに対して行われた作成・編集・削除などの編集作業がすべて追跡できるようになっています。

変更履歴ファイルの書式

変更履歴は 1 行 1 エントリのプレーンテキストとして保存されます。変更履歴の各行は以下のようなタブ区切りのフィールドを含んでいます。

<date>\t<ip>\t<type>\t<id>\t<user>\t<sum>\t<extra>\n

<date>  = Unix タイムスタンプ
<ip>    = IPv4 アドレスもしくは IPv6 アドレス
<type>  = ログ行タイプ (次のセクションで説明します)
<id>    = DokuWiki のページ ID
<user>  = DokuWiki のユーザー名 (ログイン中のみ)
<sum>   = 編集の概要もしくは動作理由
<extra> = 任意のタイプのデータ用のフィールド
          注意: タブ "\t" と改行 "\n" は含まないようにしてください。

ログ行タイプ

ログ行タイプは、任意の長さの文字列です。ただし、すべての 1 文字の文字列 (「C」や「E」など) は DokuWiki コアのために予約されています。2 文字以上の文字列は、実験的用途やユーザー定義のログ行タイプとして利用できます。なお、ログ行タイプは大文字小文字を区別します。ログ行タイプのマッチは PHP の比較演算子 === で行われますので注意してください。

DokuWiki コアで利用するログ行タイプ

以下に、DokuWiki コアで利用するログ行タイプ (<type> 値) を示します。

<type> 意味 備考
C 作成 (Create)
E 編集 (Edit)
e 小変更 (Minor edit) 小変更は、ログイン中のユーザーのみ利用できます。
D 削除 (Delete) ページを削除しても、変更履歴と以前のバージョンは保たれます。
R 復元 (Revert) 以前のバージョンから編集した場合に利用されます (<extra> フィールドにも追記されます)。

ページごとの変更履歴ファイルの保管

/data/meta」ディレクトリは削除しないでください。ここに保存されている変更履歴データは他の Wiki データからは作成できません。

最近の変更キャッシュの再作成

もしうっかり「/data/meta/_dokuwiki.changes」ファイルを削除してしまった場合は、最近の変更のキャッシュを再作成するをご覧ください。

旧バージョンの DokuWiki からの変更履歴のインポート

:!: 以下の情報は、あなたが 2006-11-06 以前のバージョンの DokuWiki からアップグレードする場合にのみ影響する情報です。 :!:

旧バージョンの変更履歴ファイルが存在する場合は、自動的にインポートされます。

: セーフモードで動作している PHP 上で非常に大規模な Wiki を動作させている場合は、スクリプトが実行可能な時間を延長することができないため、インポート作業中にタイムアウトが発生してしまう可能性があります。もし必要であれば、セーフモード動作ではない PHP が動作している他のサーバでインポート作業を行うことができます。インポート作業を行った後の「/data/meta」ディレクトリは、セーフモードで動作しているサーバにそのままコピーしても大丈夫です。

: 更新ペースの非常に遅い Wiki では、「最近の変更」ページを埋めるために、$conf['recent_days'] の設定値をより適切な値に変更するとよいでしょう (デフォルト値は 7 日間です)。

大量の変更履歴のインポートでは、通常の PHP の制限である 8MB 以上のメモリが必要となる場合があります。もしインポートに失敗する場合は、Web サーバのエラーログファイルに “Fatal error: Allowed memory size of 8388608 bytes exhausted” のような PHP エラーが出力されていないかを調査してください。もしこのようなエラーが出力されていた場合は、Web サーバの php.ini ファイルを編集して一時的に PHP のメモリ制限を緩和させてから Web サーバを再起動し、再びインポートを試みてください。

インポート作業の完了確認

URL に直接指定することで実行できる「do=check」アクションは、チェックの一環として、旧バージョンの変更履歴が存在しているかどうか、インポートが作業中なのか完了しているのかを確認し、報告します。もしインポート作業が途中で停止してしまった場合、「do=check」はインポートが完了していないという警告を出力します。この場合は、「/data/meta/_dokuwiki.changes」ファイルと「/data/meta/_dokuwiki.changes_*」ファイルを削除して再びインポート作業を行ってみてください。

変更履歴が問題なくインポートできた後でも、「do=check」は旧バージョンの変更履歴が存在することを報告します。これは意図的に出力しているものですので、問題はありません。しかし、もし「do=check」が毎回 “Importoldchangelog plugin not disabled after import” という警告を出力する場合は、プラグイン管理で importoldchangelog プラグインを無効にしてください。

ja/devel/changelog.txt · 最終更新: 2010-01-12 15:29 by kazmiya

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki