Sorry if the message is a little technical, please ignore it if it doesn't concern you.

A user has demonstrated a bug [1][2] when a page is modified and saved as draft, then modified and published, then reverted to the pre-draft version: the restore is incorrect, wrong lines are restored and duplicated, good lines are missing.

The problem appears because when a "draft" is "published", the diff is created not between the previous version of the "draft" and the posted text (A), but between the previous version of the "published" page and the posted text (B), while the page history contains diffs from the draft versions (and not from the published versions).

Because of this, restoring from a previous version other than the very last one, in some cases is incorrect.

At the moment in the Subversion pre-release I have commented out a line where PmWiki switches the old version of the draft page with the public page. (In scripts/draft.php, line 59 commented out.)

With the current solution (A), it appears really fixed but I'm still searching for any potential negative side effects (I don't see any but I wonder why it was done this way in the past). This solution keeps information in the page history for the authors of the changes, including the draft changes.

There is another possible solution: (B) done correctly, slightly more complex to implement: discard all edit history from the draft page and only store the diff between the published page and the posted text, keeping only the history of the published versions. This will not break the restore mecanism. OTOH, this will lose information about authors of intrermediate edits and one can wonder if it is ethical.

My questions are:

1. Does anyone see a problem with the current solution (A) ?

2. Should we go with (A) or (B) ? Or something else?

Thanks,
Petko

[1] http://www.pmwiki.org/wiki/Test/DraftRestore
[2] http://www.pmwiki.org/wiki/PITS/01007


_______________________________________________
pmwiki-users mailing list
[email protected]
http://www.pmichaud.com/mailman/listinfo/pmwiki-users

Reply via email to