On Mon, 12 Sep 2005 13:38:57 +0100, Rowan Collins wrote:
On 12/09/05, Netocrat netocrat@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.