[ckan-discuss] initial "distributing changes" implementation

John Bywater john.bywater at appropriatesoftware.net
Tue Mar 30 12:17:17 BST 2010

I just added a prototype implementation for 'distributing changes':

So, there's a new changeset subdomain model with tests here:

It's basically similar to Mercurial.

Just like a changed Mercurial working directory, new CKAN model 
revisions can be 'committed' to the changeset system.

Just like Mercurial, the CKAN model can be 'updated' to correspond with 
any existing changeset.

Just like Mercurial, the changeset objects can be 'pulled' from one 
instance to another.

Just like Mercurial, diverged lines of development can be tested for 
conflicts and merged into yet another changeset....

There are several gaps in the implementation, but basically after 
several rather late nights, I've worked it out.

Best wishes,


PS I hope other implementations of 'distributed data version control' 
could be created, to inter-operate a protocol abstracted from the above 
codes. It could be used to update, track, and display history for a many 
things, including a non-temporal dataset metadata model (ie like CKAN 
but without CKAN's revisions).

More information about the ckan-discuss mailing list