====== 変更履歴 ====== 変更履歴は、最近の変更キャッシュと、ページごとの変更履歴ファイルに書き込まれます。 最近の変更キャッシュは「''/data/meta/_dokuwiki.changes''」に保存され、日々整理されます。ページごとの変更履歴ファイルは「''/data/meta/<名前空間>/<ページ ID>.changes''」に保存されます。ページごとの変更履歴ファイルは整理されないため、そのページに対して行われた作成・編集・削除などの編集作業がすべて追跡できるようになっています。 ===== 変更履歴ファイルの書式 ===== 変更履歴は 1 行 1 エントリのプレーンテキストとして保存されます。変更履歴の各行は以下のようなタブ区切りのフィールドを含んでいます。 \t\t\t\t\t\t\n = Unix タイムスタンプ = IPv4 アドレスもしくは IPv6 アドレス = ログ行タイプ (次のセクションで説明します) = DokuWiki のページ ID = DokuWiki のユーザー名 (ログイン中のみ) = 編集の概要もしくは動作理由 = 任意のタイプのデータ用のフィールド 注意: タブ "\t" と改行 "\n" は含まないようにしてください。 ===== ログ行タイプ ===== ログ行タイプは、任意の長さの文字列です。ただし、すべての 1 文字の文字列 (「C」や「E」など) は DokuWiki コアのために予約されています。2 文字以上の文字列は、実験的用途やユーザー定義のログ行タイプとして利用できます。なお、ログ行タイプは大文字小文字を区別します。ログ行タイプのマッチは PHP の比較演算子 ''==='' で行われますので注意してください。 ==== DokuWiki コアで利用するログ行タイプ ==== 以下に、DokuWiki コアで利用するログ行タイプ ('''' 値) を示します。 ^ '''' 値 ^ 意味 ^ 備考 ^ | C | 作成 (Create) | | | E | 編集 (Edit) | | | e | 小変更 (Minor edit) | 小変更は、ログイン中のユーザーのみ利用できます。 | | D | 削除 (Delete) | ページを削除しても、変更履歴と以前のバージョンは保たれます。 | | R | 復元 (Revert) | 以前のバージョンから編集した場合に利用されます ('''' フィールドにも追記されます)。 | ===== ページごとの変更履歴ファイルの保管 ===== 「''/data/meta''」ディレクトリは**削除しないでください。**ここに保存されている変更履歴データは他の Wiki データからは作成できません。 ===== 最近の変更キャッシュの再作成 ===== もしうっかり「''/data/meta/_dokuwiki.changes''」ファイルを削除してしまった場合は、[[:ja:tips:recreate_wiki_change_log|最近の変更のキャッシュを再作成する]]をご覧ください。 ===== 旧バージョンの 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" という警告を出力する場合は、[[:ja:plugin:plugin|プラグイン管理]]で importoldchangelog プラグインを無効にしてください。