Short description
The old revisions should be stored using the rcs command/tools. One often publishes some code files which only contain minor updates -- wasting ~100kb for each small change is a relatively large waste of space, especially within a productive environment. I personally dislike Mediawiki despite of the nice interface because it has no ACLs, uses SQL db, stores each revision completely, and does not nicely support attachments. So MoinMoin is only 1.5 steps (simple ACLs) away from a perfect Wiki (IMHO).
Keep up the great work!
Discussion
Using RCS would be a step into a wrong direction:
- it would make an additional dependency (not a big issue on linux systems, but definitely on windows)
- Correct. Should only be optional. To handle old revisions. But rcs is a rather simple tool and should be easily portable.
- RCS doesn't handle binary files well
- Don't want to have it for binary files. Don't think there is much need for that, either.
- calling external RCS tool for about any page operation would slow down things
- See below.
To the "waste" point:
- while it is definitely true that storing every revision wastes space, it is also true that 1GB of space costs about 1 EUR today (assuming mirrored 200GB S-ATA disks for about 200 EUR total). A typical wiki page maybe takes 4KB of storage, so for 1 EUR you can store 250.000 page revisions.
- Typical? Maybe. Although I don't quite know what 'typical' means. My vision is towards a Wiki-like development platform. And for that one should even consider automerging of differences which have been submitted within a small time frame, ie. one hour or so.
- The other side is CPU time and server load. As you might have seen on this machine, load can be an issue. Increasing the load by storing pages in some more space-efficient way is not the thing you want to do on a busy machine. Super high CPU power machines are not cheap.
- Let the rcs/diff tools run 'niced'. Don't use it for the most recent revisions.
Just my 2 cents: Would it be possible to modularize the revision control in the future? I mean enable different mechanism where the current mechanism is just the default, core mechanism, while it is possible to use some totally different system like RCS or some kind of SQL database (whatever). maybe after MoinMoin 2.x? -- ThiloPfennig 2006-02-21 11:57:03
That's basically what I proposed at http://meta.wikimedia.org/wiki/Proposals_for_new_projects#WikiGlobalFS. -- MSt 2024-11-21 23:43:02
But we have some idea of using gzip compression for stuff in a future moin version:
- built-in into python
- handles binary stuff also
- will be off by default
See also StorageRefactoring for what is planned for 2.0. The backend will be modular and that feature request might just be fulfillable then... -- TheAnarcat 2006-02-27 00:33:00