Hello there,
Every now and then I find web applications that have some sort of article history/versioning where you can select a previous version of the article/content and basically do a "restore" process. I'm planning on having one like that, but I have a few things in my mind and I would like to get your opinions.
1) Should an autosave add a new entry to the history list? I would like to implement an autosave feature, so, I wonder whether each autosave should add a new entry into the version history list? Or should I have a separate "list" (=latest autosave only) for autosaved articles? I think the ladder makes more sense. If the browser crashes (or wtvr) then the user could restore an autosave. The history list is for those articles that he saved by pressing the submit button. Agree?
2) How many versions? If the user keeps modifying the article (lets say he keeps adding new paragraphs) and then saves the article, how many different versions of the article should there be at max? Should I let the user decide (which was my initial thought)? What is usually a reasonable value? 10? Is versioning a bad thing when it comes to disc storage? If each article has 10 versions, it's basically 10x more space for the entire article content... now Imagine having 1 MB of article content, it would be 10 MB for the entire DB and some hosts have limits as the size of a DB. This leads to the question 3:
3) Do you ever remove versions? If article versions have stayed intact for enough long, will you remove those? If so, what's the duration you set? A user defined? Is one week a sufficient default value? If the time is not the indicator, then what is? And if the time is the indicator, then do you run Crons to do the cleanings or what?
4) How to determine a "change"? If the user adds one dot into the end of the article and presses the save button, will I still create a new history entry? How do you handle this? Do you just compare if the article has changed and if so you create a new entry?
That's plenty of questions I know, but if you got some opinions or thoughts I'm glad to hear them. :)