A shared workspace is associated with a group of users who share the
workspace, which isolates a set of shared resources from other resources
stored in a repository that supports versioning of resources. The content
of a shared workspace is maintained using a set of shared references, to
the set of resources associated with the shared workspace. A virtual
workspace is created for a user by generating a personal mapping for the
user, where the personal mapping indicates which resources from the set
of shared resources the user has made personal, e.g., by checking out
such resources from the repository. If the user submits a query on the
repository, the particular version of each resource involved in the query
is readily determinable from the shared workspace and the user's virtual
workspace.