When PmWiki is called with '?action=diff', it displays a summary of past edits on a page. Each past edit is shown in a box which shows lines added, changed or deleted during that edit in a before & after format.
Below each box is a "Restore" link. Clicking the link will open an edit box with the page as it was before that edit. You can make changes or simply click Save to restore the text.
There are two additional options specific to PageHistory:
- Hide minor edits - hides any edit that the author marked as 'minor'. - This is done by adding "&minor=n" to "?action=diff". The default value for this is to show minor edits with "&minor=y"
- Show changes to output - It shows changes to the rendered output (as opposed to the normal display which shows changes to the wiki-markup). This is done by adding "&source=n" to "?action=diff". You can show changes to markup (the default behavior from 2.2.13) with "&source=y".
- You can set both by using "?action=diff&source=y&minor=y".
In the default mode "Show changes to markup", you can disable word-level highlighting of differences by adding to config.php such a line:
$EnableDiffInline = 0;
A page's history is kept for the number of days given by the
$DiffKeepNum variables (set by the site's wiki administrator). When a page is edited, any page history information older than both these values is automatically discarded.
Note that a specific page revision isn't removed from the page until the first edit after the time specified by
$DiffKeepDays has elapsed. Thus, it's still possible for some pages to have revisions older than
$DiffKeepDays -- such revisions will be removed the next time those pages are edited.
Is there a way to remove page history from page files?
1. Administrators can clean page histories using the Cookbook:ExpireDiff recipe.
2. Administrators with FTP file access can download individual pages from the wiki.d directory, open them in a text editor, manually remove history, and re-upload the files to wiki.d/ directory. Care must be exercised, when manually editing a page file, to preserve the minimum required elements of the page and avoid corrupting its contents. See PageFileFormat#creating.
3. Edit the page. Select all the contents of the edit text area and cut them to the clipboard. Enter
delete into the text area and click on the save and edit button. Select all the contents of the edit text area and paste the contents of the clipboard over them. Click on the save button. This will remove all of the page's history up to the final save in which the pasted material is re-added.
How can I restrict viewing the page history
(?action=diff) to people with edit permission?
In the local/config.php file, set
$HandleAuth['diff'] = 'edit';
In case of this restriction is set up on a farm, and you want to allow it on a particular wiki, set in your local/config.php :
$HandleAuth['diff'] = 'read';