Extension:Nonlinear

Current Status

 * Please contribute to discussion at Requests_for_comment/Nonlinear_versioning
 * Implementation to branch revisions is written and unit tested.
 * Minimal UI to display branches in revision history.
 * Need to find a mechanism to determine whether the current editor can alter trunk, and set a flag which determines how hooks operate.
 * Probably need a new hook in core which will prevent revision creation from updating the "latest" pointer.
 * No UI to perform branching.

Outline

 * Augment the functionality of Extension:FlaggedRevs and deprecate core page protection. Try to present the same workflow and API whenever possible.
 * Integrate with a second extension, which is a UI on top of abstract version control. (show item at revision or as delta, show/hide metadata and its history, alter non-destructively).  This VCS extension must be compatible with Git as well.
 * Hooks: add revision; alter (builtin f: save revision and record of change)
 * User roles: public (add revision, annotate/link, view), owner (*),
 * Branches do not have owners, when there are name collisions, other, determinate methods result in what is displayed. Revisions do have an owner.  Mention that anonymous edits lose formal ownership.
 * Extension adds metadata about revisions, which is namespaced under "Nonlinear".
 * Target multiple db backends, since this is meant for hybrid offline / central server sharing.