WardCunningham / Smallest-Federated-Wiki

This wiki innovates by: 1. federated sharing, 2. drag refactoring and 3. data visualization.
http://wardcunningham.github.com/
GNU General Public License v2.0
1.21k stars 177 forks source link

Feature Candidate: Provide Public and private history control. Author may not want to show all evolution of thought, for artistic or legal reasons. #318

Open mkelleyharris opened 11 years ago

mkelleyharris commented 11 years ago

Provide Public and private history control. Author may not want to show all evolution of thought, for artistic or legal reasons.

WardCunningham commented 11 years ago

It is possible to remove redundant information from the journal. I suggest this be a destructive delete that could be applied before publishing pages from (say) browser local storage. I would call it "condensing" the journal and offer "light", "heavy" and "complete" variations:

Light condensation would replace adjacent stings of actions with the single action that effects the same change. For example, moving an item up two and then up two more could be replaced with a single move up four. The date of the replacement would be the date of the last action in the condensed sequence.

Heavy condensation would replace all edits with a string of adds that add the final version of every item in the sequence and with the date of the last edit of the items. This would preserve a sense of the period of authorship but would discard all intermediate results. When forks are present, the heavy condense would preserve just enough forks to meet the attribution requirement of the cc-by-sa license.

Complete condensation would replace the whole journal with a single create action that creates the whole page at once. The date of the action would be the date of the condense operation. (Forks for attribution would be preserved or could be bundled into the create action in some less visible way.)

We don't yet merge changes from various forks. We should do the analysis of each variation to figure out how much we are giving up when we discard history.

mkelleyharris commented 11 years ago

Your idea of offering "light", "heavy" and "complete" variations sounds very complete and powerful for an author. One extra possibility would be to provide a version number with each edit so that people could reference a specific version. The version could be a increasing number for that page. Or it could be a SHA1 hash of the page, or just a date-time stamp.

WardCunningham commented 11 years ago

Until now the index into the journal has been the reference number. When we start messing with the journal we'll have more bookkeeping to do.