Version 6 of storing wiki history inside wikit

Updated 2002-11-29 14:18:45

I want to add pagehistory (a'la [L1 ]) directly to the wikit. I don't think storing each revision in full is a particularly good idea, something like the way RCS does it seems like a better idea: store the last version in full, backtracking to the first version using diffs.

My first idea(s):

Storage:

  • 3 storage options: store history in wikit.tkd, store in history.tkd store in filesystem
  • Full version and diffs are separate files (RCS stores them in one file)
  • Diffs in last-first order in the $page.history file, in the order you need them.

Access mostly like tclhist:

These should all just be links on existing pages.

Diff is going to be a bit of a problem, as windows systems do not have it. There are precompiled binaries (68Kb), which we could store in the wikit. But I would prefer to use an all Tcl solution, but the current (working) diff in tcl is a tad slow (unworkable for word level diff like wikidiff does). It is fast enough for doing the history line-by-line diff, so I'll start using that for the history storage. But the fancy wikidiff/worddiff output will have to be done with external diff.

Thoughts, anyone?

- PS.

As with all good things - there seem to be three sides to this, and I think they are mostly independent:

  • how to do the diff
  • how and where to store the diff
  • what URL scheme to use as "API"

Picking (puretcl, history.tkd, urls-as-above) as starting point sounds great to me -jcw

The CVS wiki history is currently under 30 Mb, that includes a copy of the latest pages. If we just consider changes, and then zlib-compress each, that ought to be less still.


[ Category Wikit - Category Tcler's Wiki ]