JSR-170 supports versioning of resources, and a number of people have requested that Sakai's ContentHostingService and Resources tool offer support for versioning. This page invites comments and suggestions about what form of versioning would be appropriate in Sakai. Please add comments to the "Use Cases for Version Control" page or to this page outlining the features that should be available. Among the questions we will need to answer are:
- Should we offer access to all versions of the "content" of a resource (the file body)?
- If metadata about a resource (or folder) changes, should we save the old "version"?
- Who should be able to access earlier versions of resources? Are there times when access to earlier versions should be offered to all users and other times when only certain users should have access? Should this be a system-wide setting, a site-by-site setting, a resource-by-resource setting?
- Is there some standard or some implementation of versioning that would provide a "model" for versioning that would be appropriate for Sakai? (Please summarize features and provide links to useful documentation).
The need for version control is discussed in a few JIRA tickets, especially "Resources tool should have the ability to store multiple versions of files in Sakai
", which incorporates two others: "Document Versioning
" and "Add Versioning Capabilities to ContentHosting, Resources Tool, and WebDav
".
Discussion of version control in general and references to specific examples can be found in wikipedia
.
Eventually, we will begin working on an implementation of version control. That will require decisions about a user-interface changes to support Versioning and API changes to support Version Control.
I think that since the API is designed to be adaptable to different underlying storage (Digital Repository -DR) techniques (file system, fedora, etc...see Content Hosting Handler) , it would be nearly duplicative to provide versioning implemention code that was independent of that. Some versioning would likely be supplied by the DR technology, in some cases, in others, none. So, I think it best to assume only that versions may be available... and to align this presentation, both in the UI and in designing the API presented, with the similiar-in-effect 'permissioned access to versions' idea.