Hi J, I think that your explanations point into the direction of multiple workspaces. If user A has a workspace A that user can make modifications in his workspace without user B in workspace B can see the changes. As soon as user A checks something into the version store user B can check it out and look at it using merge() or update().
Does that suit your use case? regards, david