GNOME Bugzilla – Bug 82129
system-global queries are lost when user changes something
Last modified: 2004-12-22 21:47:04 UTC
the vfolder method ignores the system vfolders whenever a user alters their menus in some way, using only the user's copy of the .vfolder-info file. This means that future changes to the system vfolder queries by an administrator or OS upgrade are lost.
Weird. Could have sworn this was a dup. Fairly major if editing is to work at all, I guess. :/
Not really. Only changes to the folder structure are ignored, and this was intentional. Fine grained merging is quite hard. The most important thing is that new apps show up in the proper places and this IS the case. Of course it is not ideal, but 1) How many people will change their directory structure 2) How many sysadmins will change the system directory structure So I don't think this problem is as major as it seems. I think at this point the best bet is to make the current vfolders work as is and think about a replacement that is better designed. Current vfolders were a proptotype that just happens to mostly work.
Talked with Alex on IRC. He suggested we make this milestone 2.0.0. Its a future upgrade path nightmare. Luis?
Alex: would fixing this require changing the format of vfolders as they are stored on disk? or just how the existing data is handled by the code?
Technical implementation aside, the desired behavior is really non-obvious here. For example in the extreme case, lets say the user customizes all their folders and does a massive re-org of the menu structure creating totally different "categories" etc. Now the sysadmin creates a new menu structure based on special site requirements. Which takes precedence? In general I would say "do not throw user changes away if at all possible", so I would say we merge the sysadmin's additions in and ditch the rest. How to do this is rather tricky. As far as changing underlying menu structure, this will be common in some use cases. Distros are likely to customize this file. Which means that you'll be using different system-menu settings files in a networked homedir situation. That means that one idea I had, assigning numeric ids to each folder and then merging user attributes into that, doesn't really work. Because there would likely be different ids between distros. The problem is there's no obvious way to say that two folders are the same.... and when any sort of radical change occurs who's to even say which folders are the same. Its not obvious to me how I would handle this personally on a case by case basis, and if I can't formulate that there's no way I'm going to be able to think of a computer algorithm that will perform sensibly. Fine grained merging is *HARD* and I'd really avoid a hackish implementation of it. George's solution has the advantage that its predictable and simple. The downside is that if the user makes minor tweaks they no longer pick up minor tweaks the sysadmin makes (or menu structures on different distros if you use a networked homedir, since I think George is right most sysadmins won't tweak this file). I think this is acceptable for now, because the alternative is unpredictable and hence very confusing.
[Search for 'luis spamming' to catch every instance of this email.] In order to better track Sun's bugs for Sun and Ximian's internal use, I've added a temporary keyword to some bugs. I apologize for the spam, and for the use of an additional keyword, but this is the best way for Sun to track 'it's' bugs without interfering with the community's own triage and bug behavior. If you have any questions or objections, please drop me a note at louie@ximian.com or email bugmaster@gnome.org for more open discussion.
Fixed with vfolder rewrite, which can be found on the gnome-vfs-2-0-vfolder-rewrite branch of gnome-vfs.