User:Tgr (WMF)/fork & merge

Currently, Wikipedia history is linear: editors must have the current version of the article to be able to do useful work, multiple editors cannot work in parallel (and to the extent it does happen, it leads to confusing and time-consuming edit conflicts) and edits must be applied immediately to avoid blocking the next editor. This makes offline editing and sophisticated change review workflows impossible, and limits how well editors can collaborate (e.g. instead of multiple editors reverting each other in an edit war, let two groups of editors collaborate on two versions of the article and then slowly comb them together). To enable these important use cases, we would need to support the forking and merging of article histories.

Technical requirements (see also T113004):
 * Ability to store revisions as a DAG in the DB (ie. sort out parent revision tracking)
 * Store and reuse revisions (edits) which are not part of the canonical history
 * A great merging workflow/toolset
 * For the offline use case, offline reading/editing support and sync tools

Social requirements:
 * Review workflow for syncing non-realtime edits (offline use case)
 * Norms/workflows to prevent using non-canonical revisions for content forks
 * Ensure the extra review load is in line with the actual content gain (ie. most edits end up in the article)

See also:
 * CScott's Wikimania 2018 poster