naderman wrote:And systems like git store snapshots instead. The problem you get with storing differences is that you actually have to calculate a particular revision based on all the past revisions and the differences introduced in each one. Simply storing the entire post seems a lot more straight forward. As long as it is in a separate table it doesn't become a memory issue, and surely disk space is not the concern here?
I don't think disk space should be too big of a concern. Most posts on a forum are generally not edited. And those that are edited usually only get edited once or twice, except for like announcements or something.
And there could be an option when you edit, like "Save revision information for this revision" or something. And of course per post, per topic AND globally there should be an option to remove post revision information. And a global on/off switch. And maybe even a per topic and per post on/off switch as well. With all of this, admins could just turn it off or periodically prune the revisions table when it gets too big.
EDIT: And I forgot to talk about the actual topic of the quoted post, which was how to store the revision. In connection to what I said above, I likewise think that storing the whole post and doing a difference check after the fact is not going to take up too much space.