- Major improvements to the resyncing process:
- When resyncing liboverrides, a missing root of the liboverride hierarchy (i.e. if the hierarchy root linked reference ID is missing) will prevent any attempt to resync any data in that liboverride hierarchy. This is done to prevent resync code breaking existing overrides upon missing linked data (5f67b25c28).
- Fixed several issues with liboverride partial resync process which could lead to some needed resync to be skipped (9ea2170cce, ba9ca7afb6, 5574a1bfc1, b724015840, 370a2bb416).
- Refactored parts of the liboverride partial resync process to address known error reports (40d79e3d2b, 07dfc6eccc).
- Potential local references to virtual linked liboverrides are now restored 'as best as possible' on resync (PR #107144, 527b21f0ae). Note that in general user should avoid such referencing to linked data generated from the recursive process, as it is by definition very 'unstable' and does not actually exist in any file storage.
- Data arrays are now shared between copies, resulting in an overall memory usage reduction of at least 25% with large geometries (7eee378ecc, dcb3b1c1f9).
- A hash is now used for Collection object lookup, speeding up object linking & unlinking (ea97bb1641).
- Float custom properties can now have sub-types (e.g., distance, angle etc.) (6e2721da30)