(the quote end tag detection is broken and I can't seem to fix the quotes)
Ok, closing notes. I'm retreating from this conversation because coming up with the answers takes far too much of my limited free time
. I'll answer the previous questions and then fade away. Someone else is free to continue on my behalf if willing.
At that point we drifted from my question how many apps are really affected by that feature.
It's not relevant how many applications need or are affected by the feature.
Why did you make a point about "n times" editing the exclude file then?
Or unlikely the problem lies within the readonly data?
The more apps are affected the more possible users may be affected.
Affected in both directions, likes and dislikes.
I do like slaeshjag for the disabling option and i'm fine with that result.
Because N is the number of times things need to be done no matter the value of N. I meant it's not relevant how many applications exactly are affected. Not that the cardinality has no effect. It doesn't matter if it's exactly 5, 10 or 50. The amount of work grows linearly compared to the amount of PNDs. For this conversation any given specific value for N is irrelevant. In this case I'm assigning an asymptotic work load (for a parallel see asymptotic complexity) to compare the options without guessing how much work specific things are.
I assume that if the user did a mess "somehow" he should better do a reset to a defined state. That is the PND content only.
you have two reset points: with custom readonly data (delete only appdata) and bare PND (delete both appdata and appdata-ro). In use cases I can think of it's very unlikely the problem lies within the readonly data. Can you give some examples?
A buggy plugin, a crc error on the filesystem, the buggy 7z support of drastic - which can't decompress 7z with some highlevel compression options. In those cases the fix lies in the RO data. I do agree, that may not be very likely, but for drastic it doesn't help if you are affected.
Both the buggy plugin and the 7z option suggest there was something wrong with the data to begin with. In this case of course you need to delete appdata-ro. The case I was presenting was one where you knew the data was good. Let me quote myself with some emphasizing: "Once you add the readonly data and
see the application working as intended you can be sure that whatever mess you make after that is related to things in appdata.". This precludes cases where the data was bad to begin with. The point was about the user messing the data up himself.
Filesystem errors we can't avoid without using a filesystem that actively works against them like btrfs. Granted, this is something that can happen, but the system still lets you go to the original data by deleting the application's appdata-ro. I think it's still a good thing you can easily first try if it was just stuff you've done that made the application stop working.
Notice you need to modify the excludes each time you add new stuff to appdata that needs to be excluded. With appdata-ro that information is implicit.
Your argument is valid for single file definitions. The majority (bytes) of RO data would be *.mapextension or *.romextension and needs to be excluded only one time. - Ok, one time per app, error, per RO data extension.
Once you take into account that many game data directories contain files with don't have an extension or have a common extension such as txt you're back at at least one exclude rule per app on average. Rules using extensions reduce the amount needed by an amount, but don't change the linear relation between amount of PNDs and amount of exclude rules.
Having too broad rules may even work against you: say you create a custom map to a game on your device and it's not backed up because it has .mapextension. With appdata-ro it'd be in appdata and get backed up with the rest. With a *.mapextension exclude rule you'd miss that file and be sad when you noticed it's gone after an unfortunate incident.
How should i know that a GB emu is listed at letter "c" because it starts with com.ex...
Check the appdata for the dir name. It's not that difficult. You have already run the PND once to create the appdata dir anyway,
Yes, to all PNDs i ever ran on that SD card. If i can't find the appdata i move the app to an empty SD card. As you said, some have many PNDs installed, i'm on 91 on my main SDcard but have 117 appdata dirs there. The actual maximum appdata dir counter could be above 1500, if you had the repo on your SD.
Yes, there is an upfront cost (in work) to the appdata-ro system. Just like there is one doing the initial exclude rules. These about balance each other out as I pointed out in the part you didn't quote.
I'm trying to reduce complexity by adding implicit information here. Generally the solution to fixing issues arising from complex environments is not complex operations, but better organization. By keeping the operations simple you reduce the possibility of errors. Even automation is simpler when the data is well organized.
I do agree. Maybe it pulled me at the wrong time into this discussion. I see you try to reduce complexity but adding another feature does not reduce complexity, it increases complexity by one feature. We read "re-inventing" in the beginning of this thread and i observed a similar process in the midnight comander (mc) development. While mc-4.6.2 saves user config in ~/.mc the mc-4.8.3 changed to ~/.config/mc and added ~/.cache/mc and ~/.local/share/mc. Instead of one directory it now uses three. Other apps use ~/.appname or came with their own idea of a good structure, e.g. ~/.mozilla. They would or would not follow into the new structure and until all other apps are updated any other tool have to handle both concepts. I don't see the reason why the OS should support and workaround individual app flaws.
The RO data feature was implemented because of lack of a _configurable_ RO data directory - or lack of minimal comfort by saving last active selection directory.
Reducing complexity within the OS could be achieved by better apps organization e.g. giving the option to configure their data organization.
Ah, but you see I'm not proposing a new scheme, but extending a previous one. I'm even extending it in a way that's fully backwards compatible with the previous one. And optional to use to boot. It's analogous to if ~/.mc was symlinked to ~/.config/mc and ~/.cache/mc was symlinked to ~/.config/mc/cache and ~/.local/share/mc was symlinked to ~/.config/mc/share. The previous was guessing the same information was earlier in ~/.mc, ~/.mc/cache and ~/.mc/share. Since the directories are all mounted on top of each other during PND mounting the PND system after mounting sees no difference between how things are now and how they would be. Users wanting their data in ~/.mc could just remove the symlinks and have their data where it used to be. The application can still reference all things via the ~/.mc tree. The only difference is one more option for the user to manage her data.
It doesn't matter if applications don't follow into this system. They do not need to. The use of appdata-ro is entirely up to the user. The applications can't even affect it since they won't see the difference between if it's used or not. Things just magically are where they have always been no matter if they physically reside in a more categorized structure.
Applications having their own options for data directories does not reduce complexity, it increases it. Having a centralized solution in the platform you can rely on is way better than each PND maybe making their own that maybe works like some of the other PNDs. Having it centralized means it always works the same way and PND builders don't need to worry about it at all.
I think this is a matter where we just have to accept personal preferences.
Sigh, yes, i wish devs do. (Push bold font button here.) This is no offense to anyone personal! I could add a smily, but i'm to serious with that wish.
In this case i wish Wallys app could get an option for configurable RO data dir.
In other cases i wish i could disable the preview icons in the selector list of drastic. It is as it is.
Configurable features could be accepted by anyone.