https://bugzilla.wikimedia.org/show_bug.cgi?id=39836
Daniel Kinzler <daniel.kinz...@wikimedia.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |daniel.kinz...@wikimedia.de --- Comment #3 from Daniel Kinzler <daniel.kinz...@wikimedia.de> 2012-11-10 11:59:55 UTC --- Implemented in I344d7681 as follows: * modifications must always be based on the revision that is indicated as the base revision. I.e. if ApiModifyEntity gets a baserevid parameter, it must loat that version of the entity, and then modify that, not the current revision. * If the current revision is the base revsision, or there is no base revision, then just save the new content as is (no conflict). * Otherwise, EditPage creates a patch by generating a diff from the base content to the new content (the content provided by the caller). * Then, a "clean" patch is generated by removing all changes from the patch that conflict with (are not applicable to) the current revision. * If the clean patch is different from the original patch, there is a conflict. * If there is a conflict but the current user was the only one to edit since the base revision, the conflict is ignored. Otherwise, saving is aborted. * If saving was not aborted, we now have either a clean patch, or a patch with conflicts against the user's own edits. * Apply that path to the current revision to get a fresh version of the new content which has all the intended changes performed on top of the current revision instead of the base revision. (in git terms, this is a rebase). This should get us a clean result. -- Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ Wikibugs-l mailing list Wikibugs-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikibugs-l