On 17/07/12 01:49, Adam Wight wrote:
>> Actually, the revision table allows for non-linear development (it
>> stores from which version you edited the article). You could even make
>> to "win" a version different than the one with the latest timestamp (by
>> changing page_rev) one.
>> You will need to change the way of viewing history, however, and add a
>> system to keep track of "heads" and "merges".
>> There may be some assumtions accross the codebase about the latest
>> revision being the active one, too.
>>
> Cool!  That's a nice solution because it's transparent to the end-user's
> system.  However, if we use the current schema as you're describing, we
> would have to reconcile rev_id conflicts during the merge.  This seems
> like a nasty problem if the merge is asynchronous, for example a batched
> changeset sent in email.
> -adam

Not really. The would be lost in favour of the target ones. You keep a
list of rev_ids in the source wiki and the ones it gets in the target
wiki, adjunting following rev_parent_id to the target wiki numbers.
It could be a problem for merges after the first one, but it's good
enough for the first version.

The nasty problem I see is how to determine the winner in a version
conflict:
  B
 /
A
  \
   C

B and C both are revisions with common parent A. How do you handle the
merge? What revision should be shown in the title?


_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to