Skip to content
JohnNilsson edited this page Sep 14, 2010 · 2 revisions

Deploying the system is done in much the same way as one would push a new master branch to a git repository.

By having data and program melded a development branch is at the same time also a branch of the data in the system. Deploying a new version of the system would thus imply a merger of the development branch and the production data into the new system.

Obviously the rate at which the production-data diverges from the development branch far exceeds the rate of typical code updates so the standard merge, with conflict resolution, employed by developers today will not do. I imagine two approaches to this problem:

  1. Automatic merge algorithm. As the system detects merge conflicts (f.ex. new constraints not met by the old production system) developers will have to add automatic conflict resolutions (f.ex. deriving a default value for new non-nullable references)
  2. Manual merges. The context in which the system is deployed will probably make it possible to delegate some merging tasks (with the right front end) to end users of the system.
Clone this wiki locally