Requirements and pre-analysis for a cross desktop configuration infrastructure

Philip Van Hoof spamfrommailing at
Mon Mar 21 23:47:16 EET 2005

On Mon, 2005-03-21 at 22:29 +0100, Joerg Barfurth wrote:
> Hi,
> Avery Pennarun wrote:

> > I agree that an .ini-style file isn't perfect for this.  XML wouldn't be
> > much good either.  What you really want is a file designed specifically for
> > version control; the best way would be something like this:
> > 
> > /full/path/to/key = value

> If raw key-value pairs are all there is to it. I think we need
> additional meta data for keys, values and cascaded layers. For this
> purpose a format like XML that supports annotating elements with
> attributes is superior. When you try to represent this enriched data in
> a simple key value format, you end up with something that is no less
> complex than real XML and lacks several of its benefits and
> understandability.

Yes and indeed. There's lots of meta-information to store. Probably more
than value-information 90% of the cases.


- Who wrote the value of this key? (which application)
- When was it's value last altered? (date/time)
- Is this the value of this key writable? (boolean)
- Who has been interested in this key? (application list)
- Whats the purpose of this configuration (description)?

> > Where each key is entirely self-contained on one line, and all keys are (at
> > least when the file is auto-generated) sorted alphabetically.  That way
> > CVS/etc will have no trouble doing merges between versions.
> > 
> If you normalize the formatting, then XML can be maintained perfectly
> well in cvs. And of course a more modern RCS should really support XML
> directly.

True. An XML-file-format can easily be made suitable for source control
systems. Nevertheless could a dump/import or backup/restore easily
support other file formats. I guess time will answer whether there's a
real demand for it. And if there's a need, there will certainly be a
developer willing to implement it at that time.

The internally used "default" backend will, however, most likely use
XML. Since thats the most suitable file format for the purpose. So if a
backup/restore functionality is to be made, it could be using a file
format thats optimised for source control systems. We'll see and it has
been written down with a certain priority (not a very high one).

Philip Van Hoof, Software Developer @ Cronos
home: me at freax dot org
gnome: pvanhoof at gnome dot org
work: philip dot vanhoof at cronos dot be
junk: philip dot vanhoof at gmail dot com,

More information about the xdg mailing list