Requirements and pre-analysis for a cross desktop configuration infrastructure
Philip Van Hoof
spamfrommailing at freax.org
Mon Mar 21 11:50:53 EET 2005
On Fri, 2005-03-18 at 13:13 -0500, Jeffrey Vaughan wrote:
> The other reason is for revision control. I want a way to screw with my
> desktop settings, and partially revert changes. Just providing a way to
> dump a d-conf configuration to plain text (foo="bar", not xml!!), and
> load a human editable format, should be sufficient for the geeks.
> What i'm picturing is something like:
> <change my menu color>
> $ dconf --dump conf.txt <or a gui button>
> $ svn commit
> <change lots of interesting settings>
> $ dconf --dump conf.txt
> $ svn commit
> <uh-oh! My i really screwed the pooch when i changed the menu color>
> $ svn diff -r 4:5 conf.txt
> - MenuColor="Periwinkle"
> + MenuColor="Puce"
> $ echo "MenuColor=\"Periwinkle\"" > nicecolor
> $ dconf --merge-in nicecolor
> Obviously this is really command line focused, but I don't think that's
> essential. The point I want to make is that it can be really useful to
> grab a setting change that happened a long time ago and reverse that one
> change without messing up intermediate settings.
Something like that is, indeed, perfectly doable. It isn't doable or it
isn't "wise" imho to use that ini-file style configuration format as
default backend-format to use.
In the document that I've posted you can find a section about the
possibility to backup and restore configurations using the standard API
(not just a commandline tool). Once that API is available, it's trivial
to create a commandline tool like the one you're proposing. Or even
trivial to create an SVN or CVS plugin (for an editor or IDE) that can
handle crazy types of configuration-situations and that can provide a
deep integration of source-control systems with this configuration
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.
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