Requirements and pre-analysis for a cross desktop configuration infrastructure

Philip Van Hoof spamfrommailing at
Mon Mar 21 17:19:23 EET 2005

On Mon, 2005-03-21 at 10:08 -0500, Avery Pennarun wrote:
> > But important to know is that the source-control system is detached from
> > the configuration-system itself. It's by creating dumps and merging
> > changes that you "connect" the source-control system with the
> > "configuration system". They aren't nor should be more tightly
> > integrated for they serve both a totally different purpose. 

> 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
> 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.

Yes well. For the backup/restore format this can be discussed. However.
For the default backend, using XML is easy and the obvious thing to do
because there's very good parsers available (libxml2). Using an existing
library rather than writing a format-parsers will reduce both
development time and the amount of bugs.

Which backup/restore formats should be supported is, indeed, an
important something to discuss. The format you proposed is a
possibility. Multiple files in ini-style is also a possibility (and also
perfect for source-control systems).

So there will be a difference between what you'll find in $HOME/.gconf
and what you'll find in $HOME/dump when doing "dconf-dump --all
--format=ini-files $HOME/dump". And both datas will be unrelated until
ones does "dconf-import --format=ini-files $HOME/dump". Which will
search for differences in "$HOME/dump" and adjust the values of the keys
that have been changed (and which will notify the applications who are
interested in those specific changes).

But "dconf-dump" and "dconf-import" wont be the only way to do this. My
(our) plans are to create an API in  libdconf. The tools "dconf-dump"
and "dconf-import" will just use this API just like any application
could. Including your integration-plugin for CVS and/or SVN.

> <record mode="broken">UniConf can already save/load your gconf and other
> settings in a format like this.</record>

So we can take a look at their code and perhaps share idea's and
libraries and/or code.

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