Import original data for a source when init is called again #193
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There exists cases where calling init on an existing source would lose data set from previous calls. The problem is that any time a file is asked to be reprocessed (happens when updated as a part of a collection and other hard to track down cases) the metadata would be read in again from the file. The side effect of this is that ONLY the metadata coming in from the frontmatter would remain. Any metadata set by other extensions or other parts of Sculpin core (things like date tracking and auto layout for proxy source collections) would be lost on init.
This patch works by saving a copy of the data before the new metadata is processed. Afterwards, if data was there originally, it imports it on top of the new metdata w/ clobber set to
false. This will ensure that data that is already set will not be overwritten by the old data.Potential Negative Side Effects
This could be a performance issue as we'll be doing import a lot more often than we were before. I don't think I've ever tested that code for performance so this could hurt people with larger sites. Hard to know what impact it might have but it is a thing to consider.
/cc @coderabbi @WyriHaximus @beryllium