Overview
Within Fedora 4, snapshots of the current state of an object may be saved into the version history. The properties or content of a node saved in these versions may be accessed later to serve as a historical record of the object. Future feature development may allow easy export of the entire history or other possible use cases.Creating versions
When you wish to save a snapshot of the current version of a node to the version history you can use the REST API. When saving these versions you must provide a label that both serves to easily differentiate a version from another and allow easy retrieval of that version.
Duplicate Version Labels
Version creation is a relatively costly operation. With the ability to create versions whenever you wish, you can develop workflows that maximize the utility of this feature.
Possible strategies include:
- For batch operations, only create version checkpoints once nodes have been ingested, verified and tested.
- For small (but high-level) data such as the descriptive metadata created by subject experts, set a versioning policy to store every modification, thereby capturing the entirety of the curatorial endeavor.
- Create snapshot versions that correspond to released versions of content (i.e., version X of a shared dataset, controlled vocabulary or collection)
Viewing old Versions
From the HTML view (or by issuing HTTP GET methods via an HTTP client program) you can get the version history of a node by appending "/fcr:versions" to it's base URL. Each version will be listed, with the version label as the title.
Previewing historic properties
By clicking on the box for a version you can expand and collapse a view of the version properties.
Navigating to the full view of an historic version
By clicking on the label of a version in the version listing you will be taken to the stored version of that resource. Because it's part of the historic record, you cannot edit it, but you can view or export it.
Reverting to a previous version
If you wish to restore an object to a previous version, you may do so using the REST API, or even the HTML view. In the HTML view of a historic version, a button "Revert to this Version" exists, that when clicked restores the object (and possibly the sub-graph) to the version viewed.
When restoring an old version, two operations occur:
- Immediately before restoring the old version, a version snapshot is made to reflect the current state of the object. This version will not have a version label.
- The current state of the resource will be updated to match the version being restored – but a new version will not be created. You can create a version explicitly if you want to create a version that records the revert.