Dreaming of configs and mergers

I’m currently working on IsiSetup, a tool to manage your configuration files using revision control. IsiSetup started using Darcs as the underlying SCM. I had to switch to Git not least because Darcs didn’t provided adequate merging capabilities.

Context matters

Merging gets the better the more context is known to the merge system. This is true for both humans and computers working in the merger business. In an ideal world there would be a merging tool which is aware of things like

  • comments,
  • variable assignements,
  • variable groups,
  • cardinality,

And this in many configuration formats…

Conf4GNU & Co

Configuration frameworks like Config4GNU and UniConf may could help. They provide translation layers between configuration formats. It may be thus possible to select a format for which efficient mergers are available. This might be XML, INI-style, ISC-style etc.

The control flow in a merger would be something like:

  1. Translate current configs into mergeable format
  2. Translate new configs into mergeable format
  3. Merge current and new config
  4. Translate result back into native formats

Sounds easy, might be hell to implement…

Advertisements

One thought on “Dreaming of configs and mergers

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s