This task aims at solving the issue caused by 'missing libraries'.
Note: This is a sub-task of T46049.
Currently, when a library file is missing for some reason (removed, rename, network filesystem outline, etc.), when you open a .blend file using some of its data, you get a warning about missing data and… must absolutely not save your .blend, otherwise you'll definitively lose track of those missing datablocks.
In relation with asset project, I’ve been working on this issue, and came with this proposal, with two main steps:
- Do not lose track of missing IDs anymore.
- Then, we should be able (in outliner probably) to edit missing libs' paths and reload the missing datablocks at any time.
I. Do not lose track of missing IDs
Now in Master
The idea here is to add a “place holder” ID when we cannot load a real one from a library. That place holder has the same type as missing one, and is a 'lib' ID, but contains no data.
Thus, you can use it as a regular library datablock in Blender - will just contain default data (no geometry, 'Empty' type for objects, default settings, etc. etc.).
And you can save and reload your file as you want - once library becomes available again, its data will be read at load time again.
D1394 implements that (only partially, as a proof of concept), it seems to work pretty well, but would need agreement this direction is valid before going further.
II. Reload the missing datablocks
First experimental builds available, see this post
Main part here is to be able to replace some ID by another without having to save/reload… WIP code is in id-remap branch.