Part of StorageRefactoring.
Checked stuff is already done in moin--main--1.3.
See also StorageRefactoring/PagesAsBundles.
Current state
Currently moin logs into those files:
data/editlog - not only edits, but also deletes, file attaches, revert, etc.
data/event.log - kind of access log
data/pages/PageName/last-edit (and also edit-lock for locking stuff)
What should be changed?
cosmetic: names should be more consistent
we should move/split most of the information of editlog into data/pages/PageName/change.log
we do not need to filter whole (global) editlog for getting a single page's editors/comments
- we don't need to put the page name into the log (it is in the directory name!), so we can easily rename the page, including the log (almost atomic, even)
last-edit isn't necessary any longer, it is just the last entry of change.log
- currently we record the uid of the user who did the change (when logged in). this is problematic if a user account gets deleted, then any hint on the editor is lost. Maybe we should simply include the user name additionally.
If we have all the log of the page in the page log, then we can move a page from one wiki to another. I don't know if anyone will want to do this, but it seems useful.
mainly for recentchanges, we need a new "global" data/change.log. each log line will be written to both the global and local changelog.
if we have hierarchical change.log as thought about on StorageRefactoring/PagesAsBundles, we get exactly that. The change.log contains changes of all levels below the current object. So the root change.log would look like it looks now.
The page names in the log should be relative to the object containing the log, so if MainPage/SubPage changes, we would have those logs:
- thus we have no problem on the lower levels if we rename stuff, the moved object is internally still correct
- the log levels above where the renaming did happen maybe dont need to be corrected as they are used mainly for recentchanges like stuff