Ripple

May 2, 2016 ยท View on GitHub

Coverage Status Build Status

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