1. A computerized system for maintaining a repository comprising: an object stored within the repository, the object having a version, the version having a context pointer and a relationship comprising a bi-directional connection between the repository object and a second repository object, and a relationship type; a workspace within the repository, said workspace operative to hold a version of the object and an object relationship in the repository; and wherein the context pointer of the version of the object is set to the workspace holding the version of the object and a version of the object relationship when the version of the object is in the workspace, facilitating addition of objects to the workspace, and allowing an application to copy or compare an object and the object relationship between workspaces, or between a workspace and the repository, and wherein the version is updated by copying only updated properties and associated version identifiers and not the updated object, and wherein each object instance has its own context pointer and a pointer to the object relationship instance to disambiguate cases where a same object version is manipulated in multiple contexts simultaneously, and wherein an interface may support bi-directional relationships between versioned objects for both version-aware applications, and applications that are not version-aware.