The changelog is stored in per-page changelog files, with a
recent changes cache. The recent changes cache is kept in
/data/meta/_dokuwiki.changes and trimmed daily. The per-page changelogs
are kept in /data/meta/<namespace>/<pageid>.changes files. This change log
allows the full life-cycle of page creation, deletion, and reversion to be tracked.
The changelog is stored as a plain text file with one changelog entry per line. Each changelog line contains a tab separated list of fields.
<date>\t<ip>\t<type>\t<id>\t<user>\t<sum>\t<extra>\n
<date> = Unix timestamp
<ip> = IPv4 or IPv6 ip address
<type> = Log line type (see below)
<id> = Dokuwiki page id
<user> = Dokuwiki user name (if logged in)
<sum> = Edit summary or action reason
<extra> = Field for arbitrary type specific data.
Note: May NOT contain "\t" or "\n" characters.
The log line type is an arbitrary length string. All single character <type> values are reserved for the DokuWiki core, while multi-character <type> values are allowed for experimental and user defined log line types. Note that <type> is case sensitive. The <type> field is to be tested with === not substr.
| Type | Name | Extra | Notes |
|---|---|---|---|
| C | create | ||
| E | edit | ||
| e | minor edit | only available to logged in users | |
| D | delete | changelog and attic preserve page history | |
| R | reverted | revision edited to revert the page | user may have edited the revision they started with |
The old changelog is imported automatically if it exists.
Note:
Very large wikis running on servers with php in “safe mode” may run out of time
because the execution time limit can not be increased by the code.
If necessary, the import can be done on another server that is not
in “safe mode”. The /data/meta directory with the imported
changelog can then be copied to the “safe mode” server.
Note:
On very slow moving wikis $conf['recent_days'] (which defaults to 7 days) should
be changed to a more appropriate value to get “Recent changes” page populated.
Question : How launch the convertion plugin ?
As written above, you just need to go to you wiki site. Maybe you can even use wget :)
Importing a large old changelog can require more memory than PHP's usual 8MB limit. If the import fails, look in your webserver error log for a PHP error, something like Fatal error: Allowed memory size of 8388608 bytes exhausted. If you see this, temporarily increase PHP's memory limit in php.ini, restart the webserver, and then try the import again.
The “do=check” action will report if an old changelog exists and is being
or has been imported. If the import ran out of time, “do=check” should issue
a warning that the import did not finish. To try the import again remove
the /data/meta/_dokuwiki.changes and /data/meta/_dokuwiki.changes_*
files.
After the old changelog has been succesfully imported, the “do=check” action might still report that an old changelog exists. This is fine and by design. But if the error “Importoldchangelog plugin not disabled after import” persist as well each time a “do=check” is performed, I have not found a solution. Simply disabling the plug-in manually (Logon as administrator, click on Manage→Manage Plugins→delete will remove the plug-in as well as the directory in which it resides1). After removing, the error “Importoldchangelog … import” still appears with the “do=check” action.
You need delete /data/changes.log
Do not delete the /data/meta directory. It now
contains changelog information that can not be regenerated from the
other wiki data.
What to do when you DID delete the meta directory? How can it be rebuild correctly?
If you have deleted the meta directory there is no way to recover the changes information - excepting from any backups that you may have made.