On Mon, 12 Sep 2005 13:38:57 +0100, Rowan Collins wrote:
On 12/09/05, Netocrat <netocrat(a)dodo.com.au>
wrote: [snip]
The three main reasons to find an improvement to
rcs diffs were stated
as: * moved paragraphs
* reverted edits
* minor changes within a line
The 1st and 3rd could be handled by a customised diff format and the
2nd could be handled by links in the database - have those
possibilities been considered and what pros/cons are there to this
approach vs the current compression scheme?
There was discussion about this when the new DB schema was created (live
in v1.5) - a "revision" is now stored as metadata, distinct from the
"text" it references, so you can have null revisions (appear in the edit
history but point at the same piece of text), and potentially store
reverts by pointing back at an earlier piece of text.
Seems to me, this would be trivial to implement (if it isn't already)
for the admin "rollback" button, pretty easy when people edit an out of
date revision (diff their edit against the version they're editting;
reuse the same text object if same),
Yup, that's the sort of thing I was thinking of.
but slightly harder for
people manually reverting a small change as a normal edit (you'd need to
run diffs against the last few versions to see if any of them were
identical to the new one).
That would have to be done on every save as far as I can see; the previous
revisions would need to be called up from the database. It may be slow,
but it may also improve compression.
Of course, the same logic needed for the second and
third cases would be
what allowed a diff-based system to pick a better version to diff
against rather than assuming the previous. (It could then ignore major
changes which were later reverted, even if the text was also changed
during the revert)
Right; the neat thing is that you would generate some meta-data to
indicate which recent version an edit is most similar to. So in the case
of edit wars, you could kind of have a branched page without explicit
support for branching.
[...]
You can already specify a particular revision
numerically (as of 1.5;
before that, the current revision wasn't stored as a revision) - indeed,
there is now a "permanent link" in the toolbox to bookmark the current
revision.
I meant in a wiki link. i.e. something like [[Some Page?Revision]]
As far as I know that isn't possible.
--
http://members.dodo.com.au/~netocrat