Title | Implement Diff Storage for Versioning File provider |
Date | 29-Jun-2006 19:00:23 EEST |
JSPWiki version | 2.4.x and beyond |
Submitter | Jerome Duprez |
Idea Category | ProviderIdea |
Reference | |
_cmdline | form='ideaform' category='GenericIdea' status='NewIdea' title= page='Idea' map='title=Title;version=JSPWiki version;url=Reference;category=Idea Category;x;status=Idea Status' |
Idea Status | NewIdea |
VersioningFileProvider is the preferred provider for MereMortals and for quickest install in general, as it enables page history without requiring any external component (DB, CVS, whatever).
Plus it has additional advantage, such as easy manual edition of pages on disk, for emergency (read coping for ACL mistakes :o)
However, one drawback is that it stores all version of a page in full raw text. So if a 1000 page has two version which differ by one line, all 2000 lines are stored on the disk. This eats up a lot of disk space, especially if the disk cluster size is bigger than the average page size. This surfaces all the more with inexperienced users who edit and save often instead of using preview. Even experienced editors happen to forget a comma or make a typo, and what should be a cheap correction consumes the whole page size.
The ideal storage format would be "reverse-delta" (I don't know if it's the correct term: I mean, the last version is stored in full text, and previous versions are stored as succesive diffs versus their respective successor.