Problem/Motivation
In #2784921-137: Add Workspaces experimental module @catch presented a use case where a user may wish to pull content from one workspace, and push to a different workspace. In the analogy of git this may be similar to a merge.
The initial patch for the Workspace module in #2784921: Add Workspaces experimental module will only allow content replication to and from the live
workspace. Therefore we need to look at how replication will work with other workspaces from both a technical and user point of view too.
In this issue we can discuss the possibly uses cases of content replication, and how users would like to be able to push, pull, and merge content between workspaces.
Proposed resolution
What we could do is change the repository plugins' purpose to only handle cross-site replication, and provide two additional services, one that will handle merging local workspaces and the other one to handle publishing a workspace to 'live'.
We should also have a new merge($workspace_id) method on the workspace entity, which will essentially bring all the revisions of $workspace_id into the current workspace, handle conflicts, etc.
And we probably want a publish() method as well, so we can execute the "publish to live" action from the context of a non-live workspace.