GNOME Bugzilla – Bug 777676
Support lazy expansion of folders when missing on other side
Last modified: 2017-12-13 19:23:08 UTC
Assuming one does a dirdiff on unknown data (unknown sizes, unknown file count, unknown distribution in subdirectories), currently `meld` expands all trees of missing directories if all differences (identical, new, modified) are checked. Changing the set of displayed difference requires both computation effort after the change and before when all potentially irrelevant changes are read and computed before the user perceives as irrelevant. This could be improved by added a lazy expansion feature where a directory tree node indicates that itself is not present on the other side of the comparison, but remains collapsed. When the user wants to see the content, he_she requests expansion and the next level (or all if another option is added) will be loaded lazily and displayed in the expanded node. Example use case: Assume you're diffing two directories which are identical except for one subdirectory `a` which contains 99 % of files on the one side and isn't present on the other. `meld` will spend ~99 % to list the content of `a` and display it (eventually occupying large amounts of RAM), when the user might just want to see that `a` isn't present on one side and copy it without checking the content.
(Re-titling so that it doesn't sound like a different thing that's been requested in the past.) At first impression, this sounds sane to me. However, I think adding a preference for this is an "unbreak my program" style option, so it would instead have to be either always-on (which I think is probably not great) or heuristically triggered for large folders. Also, it's worth mentioning that because of the way the dirdiff code works, this probably won't be easy to implement.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/meld/issues/126.