Awesome
Ripple | Versioned
Adds global versioning info and enables rolling back individual resources or the entire application.
This is achieved by materializing a list of indices of the individual resource versions under ripple.version.log
. A change in a versioned resource will create a new list of indicies. Rollbacking to a specfied time simply reregisters the snapshots of all the resources at that time.
ripple.version() // get current time index
ripple.version(10) // time travel to specified time, returns list of resources reset
You can also rollback individual resources:
ripple.version('foo') // get current time index for resource
ripple.version('foo', 10) // rollback resource, returns resource reset
Negative numbers are interpreted as relative to the current index:
ripple.version(-1) // i.e. undo one step, aka HEAD~1