The way Gnome stores it’s settings is an abomination, they seemed to have taken the worst idea Microsoft ever had (and that’s saying a lot), the registry, combined it with xml and stored the data in hundreds of little files to make the most horrid storage system I’ve ever seen. So what, you might be thinking, you never have to touch or even see the files themselves. 99% of users will never want to change any setting that isn’t exposed through the nice Preferences applets, and for those advanced users who do there is even a simple configuration editor as part of Gnome.
Recently however I have started storing my home dir in a subversion repo, it makes maintaining my settings across multiple machines much easier and adds another level of safety for me to fiddle with settings
. When Gnome starts up though, it modifies tens of files in this stupid registry system for absolutely no reason. Meaning that I either have to keep committing new versions of the files over and over that don’t actually have any real changes in them, or I clutter up my screen with lots of modified files whenever I do a check to see what changes I’ve done. Worse than that, if I do make real changes to the Gnome setup they get lost in the deluge of spurious stuff.
Whatever possessed the Gnome devs to choose this awful method for storing the settings? And why do so many Gnome components think it’s a great idea to store a timestamp every bloody time they startup. To make matters worse, half these programs have their own config settings in a normal ~/.programname file. Why the hell do they use the registry then?
I did come across one thing recently that has made the situation marginally more tolerable. That is a program called gconf-merge-tree, which seems to take a bunch of the little files and merge them into one big one. I say seems to because there is no documentation on the program that I can find, so I’m running it blind. This does at least reduce the screen clutter somewhat as only one file is constantly reported as modified, but the prospect of losing changes is still there.


I more or less agree. I don’t know if the registry is the worst idea Microsoft ever came up with (with so many bad ideas I don’t even know how to begin to choose the worst) but it’s clearly a big mistake and one of the things that makes Windows as poor as it is. So why copy it? And using XML is just adding insult to injury.
There’s nothing wrong with the conf/rc file system. It could be improved with a standard file format/API for accessing it but “if it ain’t broke don’t fix it”.